From c4b44a249a125995e78e7090bceef25d6daf1195 Mon Sep 17 00:00:00 2001 From: drewwarren Date: Tue, 21 Feb 2017 20:38:45 -0500 Subject: [PATCH] bugfixes for real (not mock) --- oauth3.core.js | 5 ++++- oauth3.issuer.js | 47 ++++++++++++++++++++++++++++++++++------------- 2 files changed, 38 insertions(+), 14 deletions(-) diff --git a/oauth3.core.js b/oauth3.core.js index 34091e6..3396a65 100644 --- a/oauth3.core.js +++ b/oauth3.core.js @@ -801,10 +801,13 @@ }; xhr.open(preq.method || 'GET', preq.url, true); var headers = preq.headers || {}; + if (preq.data) { + headers['Content-Type'] = 'application/json'; // TODO XXX TODO utf8 + } Object.keys(headers).forEach(function (key) { xhr.setRequestHeader(key, headers[key]); }); - xhr.send(); + xhr.send(JSON.stringify(preq.data)); }); } , frameRequest: function (url, state, opts) { diff --git a/oauth3.issuer.js b/oauth3.issuer.js index 979c0c5..f0fbc51 100644 --- a/oauth3.issuer.js +++ b/oauth3.issuer.js @@ -126,13 +126,14 @@ OAUTH3.urls.resourceOwnerPassword = function (directive, opts) { } var scope = opts.scope || directive.authn_scope; - var clientId = opts.appId || opts.clientId || opts.client_id; - var clientAgreeTos = opts.clientAgreeTos || opts.client_agree_tos; - var clientUri = opts.clientUri || opts.client_uri || opts.clientUrl || opts.client_url; + var clientAgreeTos = 'oauth3.org/tos/draft'; // opts.clientAgreeTos || opts.client_agree_tos; + var clientUri = opts.client_uri; var args = directive[type]; var otpCode = opts.otp || opts.otpCode || opts.otp_code || opts.otpToken || opts.otp_token || undefined; var params = { - "grant_type": grantType + "client_id": opts.client_id || opts.client_uri + , "client_uri": opts.client_uri + , "grant_type": grantType , "username": opts.username , "password": opts.password || otpCode || undefined , "totp": opts.totp || opts.totpToken || opts.totp_token || undefined @@ -153,11 +154,7 @@ OAUTH3.urls.resourceOwnerPassword = function (directive, opts) { params.totp = opts.totp; } - if (clientId) { - params.clientId = clientId; - } if (clientUri) { - params.clientUri = clientUri; params.clientAgreeTos = clientAgreeTos; if (!clientAgreeTos) { throw new Error('Developer Error: missing clientAgreeTos uri'); @@ -175,7 +172,7 @@ OAUTH3.urls.resourceOwnerPassword = function (directive, opts) { } return { - url: uri + url: OAUTH3.url.resolve(directive.issuer, uri) , method: args.method , data: body }; @@ -248,8 +245,9 @@ OAUTH3.authn.loginMeta = function (directive, opts) { }); }; OAUTH3.authn.otp = function (directive, opts) { - return OAUTH3.request({ - method: directive.credential_otp.url.method || 'POST' + console.log('OTP directive', directive); + var preq = { + method: directive.credential_otp.method || 'POST' , url: OAUTH3.url.resolve(directive.issuer, directive.credential_otp.url) , data: { // TODO replace with signed hosted file @@ -259,7 +257,9 @@ OAUTH3.authn.otp = function (directive, opts) { , request_otp: true , username: opts.email } - }); + }; + console.log('OTP preq', preq); + return OAUTH3.request(preq); }; OAUTH3.authn.resourceOwnerPassword = function (directive, opts) { console.log('ginger bread man'); @@ -276,7 +276,7 @@ OAUTH3.authn.resourceOwnerPassword = function (directive, opts) { if (data.error) { return OAUTH3.PromiseA.reject(OAUTH3.error.parse(providerUri, data.error)); } - return OAUTH3.hooks.refreshSession( + return OAUTH3.hooks.session.refresh( opts.session || { provider_uri: providerUri, client_uri: opts.client_uri || opts.clientUri } , data ); @@ -515,6 +515,27 @@ OAUTH3.requests.accounts.create = function (directive, session, account) { , data: data }); }; +OAUTH3.hooks.grants = { + // Provider Only + set: function (clientUri, newGrants) { + clientUri = OAUTH3.uri.normalize(clientUri); + console.warn('[oauth3.hooks.setGrants] PLEASE IMPLEMENT -- Your Fault'); + console.warn(newGrants); + if (!this._cache) { this._cache = {}; } + console.log('clientUri, newGrants'); + console.log(clientUri, newGrants); + this._cache[clientUri] = newGrants; + return newGrants; + } +, get: function (clientUri) { + clientUri = OAUTH3.uri.normalize(clientUri); + console.warn('[oauth3.hooks.getGrants] PLEASE IMPLEMENT -- Your Fault'); + if (!this._cache) { this._cache = {}; } + console.log('clientUri, existingGrants'); + console.log(clientUri, this._cache[clientUri]); + return this._cache[clientUri]; + } +}; OAUTH3._browser.isIframe = function isIframe () { try {