diff --git a/README.md b/README.md index 435fd54..5ccbddb 100644 --- a/README.md +++ b/README.md @@ -260,6 +260,18 @@ function onClickLogin() { onChangeProvider('oauth3.org'); ``` +A user's e-mail can be passed into the clientParams object as `clientParams.subject`. + +To auto-populate the e-mail input of the login popup, make sure the input has the class `js-oauth3-email`. + +Example: +```js +if (clientParams.subject) { + $('.js-oauth3-email').val(clientParams.subject); + $('.js-authn-show').prop('disabled', false); + } +``` + ### Compatibility with Frameworks and Libraries **jQuery**: diff --git a/oauth3.account.js b/oauth3.account.js index 030d65d..5e73122 100644 --- a/oauth3.account.js +++ b/oauth3.account.js @@ -70,4 +70,17 @@ OAUTH3.api['account.addAddress'] = function (providerUri, opts) { }); }; +OAUTH3.api['account.removeAddress'] = function (providerUri, opts) { + var session = opts.session; + + return OAUTH3.request({ + method: 'DELETE' + , url: OAUTH3.url.normalize(providerUri) + + '/api/com.daplie.me/accounts/' + session.token.sub + '/addresses/' + opts.addressId + , session: session + }).then(function (res) { + return res; + }); +}; + }('undefined' !== typeof exports ? exports : window)); diff --git a/oauth3.core.js b/oauth3.core.js index 74879c0..d5ec46e 100644 --- a/oauth3.core.js +++ b/oauth3.core.js @@ -350,10 +350,13 @@ debug: opts.debug || undefined , client_uri: opts.client_uri || opts.clientUri || undefined , client_id: opts.client_id || opts.client_uri || undefined + , subject: opts.subject , state: state }; var result; + console.log('implicitGrant opts.subject: ', opts.subject); + params.response_type = responseType; if (scope) { params.scope = OAUTH3.scope.stringify(scope); @@ -752,6 +755,7 @@ , client_id: opts.client_id || opts.client_uri , client_uri: opts.client_uri || opts.client_id , scope: opts.scope + , subject: opts.subject , state: opts._state || undefined , debug: opts.debug } @@ -840,7 +844,7 @@ opts = opts || {}; providerUri = OAUTH3.url.normalize(providerUri); - if (providerUri.match(OAUTH3._browser.window.location.hostname)) { + if (OAUTH3.uri.normalize(providerUri).replace(/\/.*/, '') === OAUTH3.uri.normalize(OAUTH3._browser.window.location.hostname)) { console.warn("It looks like you're a provider checking for your own directive," + " so we we're just gonna use" + " OAUTH3.request({ method: 'GET', url: '.well-known/oauth3/directive.json' })"); diff --git a/oauth3.dns.js b/oauth3.dns.js index e81f9c5..777bd23 100644 --- a/oauth3.dns.js +++ b/oauth3.dns.js @@ -71,6 +71,21 @@ OAUTH3.api['devices.detach'] = function (providerUri, opts) { }); }; +OAUTH3.api['devices.destroy'] = function (providerUri, opts) { + var session = opts.session; + var device = opts.device; + + return OAUTH3.request({ + url: OAUTH3.url.normalize(providerUri) + + '/api/com.daplie.domains/accounts/' + session.token.sub + + '/devices/' + device + , method: 'DELETE' + , session: session + }, {}).then(function (res) { + return res.data.device || res.data; + }); +}; + OAUTH3.api['dns.set'] = function (providerUri, opts) { var session = opts.session; var tld = opts.tld; diff --git a/oauth3.domains.js b/oauth3.domains.js index 833a745..191f13c 100644 --- a/oauth3.domains.js +++ b/oauth3.domains.js @@ -45,21 +45,21 @@ OAUTH3.api['domains.list'] = function (providerUri, opts) { }); }; -/* TODO: Manual Renew Function +// TODO: Manual Renew Function OAUTH3.api['domains.extend'] = function (providerUri, opts) { var session = opts.session; return OAUTH3.request({ method: 'POST' , url: OAUTH3.url.normalize(providerUri) - + '/api/com.daplie.domains/accounts/' + session.token.sub + '/registrations/' + opts.tld + '/' + opts.sld + '/extend' + + '/api/com.daplie.domains/accounts/' + session.token.sub + '/registrations/' + opts.data.tld + '/' + opts.data.sld + '/extend' , session: session , data: opts.data }).then(function (res) { return res; }); }; -*/ + OAUTH3.api['ns.list'] = function (providerUri, opts) { var session = opts.session; diff --git a/oauth3.org.directives.json b/oauth3.org.directives.json deleted file mode 100644 index 39a4515..0000000 --- a/oauth3.org.directives.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "provider_uri": "https://oauth3.org", - "client_uri": "oauth3.org", - "token_type": "bearer", - "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiIzOTZjMzJlNzE1NmIzNGI1ZWY1ZWYwZWU4Zjk3Y2NiMyIsImlhdCI6MTQ5MDE5NzUyNywiaXNzIjoib2F1dGgzLm9yZyIsImF1ZCI6Im9hdXRoMy5vcmciLCJhenAiOiJvYXV0aDMub3JnIiwic3ViIjoiIiwia2lkIjoib2F1dGgzLm9yZyIsInNjcCI6IiIsImFzIjoibG9naW4iLCJncnQiOiJwYXNzd29yZCIsInNydiI6ZmFsc2UsImsiOiJvYXV0aDMub3JnIiwiYXBwIjoib2F1dGgzLm9yZyIsImFjeCI6eyJpZCI6IjE1LUxhM3JnZXBFelBCR0xITHlrdEZOT1NDZFNVOXZJdjlKc2EzTkMxYVJUc3ZmUTZ5cDJuVFFfZWxmdkhzYTEifSwiYXhzIjpbXSwidXNyIjoiYTM3YWVkYTk5ZDQ5MThhMDM0YzM0MmQ2NGNkZjRiN2VkMjM0ZGZlNSIsImFjYyI6eyJpZCI6IjUzZTUwMTk2LTE4ZTMtNGJlNi04NDcyLTQ1ZDBjNDMxZjdhZCJ9LCJhY3MiOltdLCJpZHgiOiJuZnZ1bHRETE0tT0EzVUV3dVJHTDE3RFY1UXpIbWhac005Z2xMdnFLVGJacGh1T0NqMnBEUzByRk9XSXhaRjZLIiwidG9rZW5UeXBlIjoiYmVhcmVyIiwiZXhwIjoxNDkwMTk5MzI3LCJpcCI6IjIwNy4xNzMuMTY1LjUwIn0.qQu6NdsU4oVucv4uV_jusfL2HKgnPpfwF6iVG0H-P08akDtGgDoXcyVfl6hQdpVL9DGYVwvCPPUkLT0bJztM08lWhg69dVs-2e2I2BhjClsKeLsrFDBrUMwWVqqzCNVj8WBzcULLtl_mEgZc1qwVpZvXXiu0vmrRl3gtzVRaLL0", - "scope": "", - "expires_in": 1800, - "refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiI0OGJhNjJhNTQxNGFlODQ3OWJhMzA0MGQ1Mzc5NmY3MiIsImlhdCI6MTQ5MDE5NzUyNywiaXNzIjoib2F1dGgzLm9yZyIsImF1ZCI6Im9hdXRoMy5vcmciLCJhenAiOiJvYXV0aDMub3JnIiwic3ViIjoiIiwia2lkIjoib2F1dGgzLm9yZyIsInNjcCI6IiIsImFzIjoibG9naW4iLCJncnQiOiJwYXNzd29yZCIsInNydiI6ZmFsc2UsImsiOiJvYXV0aDMub3JnIiwiYXBwIjoib2F1dGgzLm9yZyIsImFjeCI6eyJpZCI6IjE1LUxhM3JnZXBFelBCR0xITHlrdEZOT1NDZFNVOXZJdjlKc2EzTkMxYVJUc3ZmUTZ5cDJuVFFfZWxmdkhzYTEifSwiYXhzIjpbXSwidXNyIjoiYTM3YWVkYTk5ZDQ5MThhMDM0YzM0MmQ2NGNkZjRiN2VkMjM0ZGZlNSIsImFjYyI6eyJpZCI6IjUzZTUwMTk2LTE4ZTMtNGJlNi04NDcyLTQ1ZDBjNDMxZjdhZCJ9LCJhY3MiOltdLCJpZHgiOiJuZnZ1bHRETE0tT0EzVUV3dVJHTDE3RFY1UXpIbWhac005Z2xMdnFLVGJacGh1T0NqMnBEUzByRk9XSXhaRjZLIiwicmVmcmVzaCI6dHJ1ZX0.QfufVyAGit2YOy9Hs9mv4eoCuyCYb9FDT_UXGd3JaFZe6MwqxLLnq2fWkkV2jgzDAK5t0JMu2Vk91jPP2IBXMkpZSzjaEKJ3-Eokb14Mo5GIrp54ndM20gWVZc-ReQtOUtSVG28bfnOBT5ceUM6SBrTxfz1ENOfmAiWl5591roQ", - "token": { - "jti": "396c32e7156b34b5ef5ef0ee8f97ccb3", - "iat": 1490197527, - "iss": "oauth3.org", - "aud": "oauth3.org", - "azp": "oauth3.org", - "sub": "15-La3rgepEzPBGLHLyktFNOSCdSU9vIv9Jsa3NC1aRTsvfQ6yp2nTQ_elfvHsa1", - "kid": "oauth3.org", - "scp": "", - "as": "login", - "grt": "password", - "srv": false, - "k": "oauth3.org", - "app": "oauth3.org", - "acx": { - "id": "15-La3rgepEzPBGLHLyktFNOSCdSU9vIv9Jsa3NC1aRTsvfQ6yp2nTQ_elfvHsa1" - }, - "axs": [], - "usr": "a37aeda99d4918a034c342d64cdf4b7ed234dfe5", - "acc": { - "id": "53e50196-18e3-4be6-8472-45d0c431f7ad" - }, - "acs": [], - "idx": "nfvultDLM-OA3UEwuRGL17DV5QzHmhZsM9glLvqKTbZphuOCj2pDS0rFOWIxZF6K", - "tokenType": "bearer", - "exp": 1490199327, - "ip": "207.173.165.50", - "client_uri": "oauth3.org", - "provider_uri": "https://oauth3.org" - }, - "refresh": { - "jti": "48ba62a5414ae8479ba3040d53796f72", - "iat": 1490197527, - "iss": "oauth3.org", - "aud": "oauth3.org", - "azp": "oauth3.org", - "sub": "15-La3rgepEzPBGLHLyktFNOSCdSU9vIv9Jsa3NC1aRTsvfQ6yp2nTQ_elfvHsa1", - "kid": "oauth3.org", - "scp": "", - "as": "login", - "grt": "password", - "srv": false, - "k": "oauth3.org", - "app": "oauth3.org", - "acx": { - "id": "15-La3rgepEzPBGLHLyktFNOSCdSU9vIv9Jsa3NC1aRTsvfQ6yp2nTQ_elfvHsa1" - }, - "axs": [], - "usr": "a37aeda99d4918a034c342d64cdf4b7ed234dfe5", - "acc": { - "id": "53e50196-18e3-4be6-8472-45d0c431f7ad" - }, - "acs": [], - "idx": "nfvultDLM-OA3UEwuRGL17DV5QzHmhZsM9glLvqKTbZphuOCj2pDS0rFOWIxZF6K", - "refresh": true, - "provider_uri": "https://oauth3.org" - } -} \ No newline at end of file diff --git a/oauth3.org.session.json b/oauth3.org.session.json deleted file mode 100644 index a8c82f1..0000000 --- a/oauth3.org.session.json +++ /dev/null @@ -1,66 +0,0 @@ -{ - "provider_uri": "https://oauth3.org", - "client_uri": "oauth3.org", - "token_type": "bearer", - "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiI4MmU5MDhlMTljMmIxM2IxNmM3N2JlMTNkMTljZmEzOSIsImlhdCI6MTQ5MDEzODg2MiwiaXNzIjoib2F1dGgzLm9yZyIsImF1ZCI6Im9hdXRoMy5vcmciLCJhenAiOiJvYXV0aDMub3JnIiwic3ViIjoiIiwia2lkIjoib2F1dGgzLm9yZyIsInNjcCI6IiIsImFzIjoibG9naW4iLCJncnQiOiJwYXNzd29yZCIsInNydiI6ZmFsc2UsImsiOiJvYXV0aDMub3JnIiwiYXBwIjoib2F1dGgzLm9yZyIsImFjeCI6eyJpZCI6IjE1LUxhM3JnZXBFelBCR0xITHlrdEZOT1NDZFNVOXZJdjlKc2EzTkMxYVJUc3ZmUTZ5cDJuVFFfZWxmdkhzYTEifSwiYXhzIjpbXSwidXNyIjoiYTM3YWVkYTk5ZDQ5MThhMDM0YzM0MmQ2NGNkZjRiN2VkMjM0ZGZlNSIsImFjYyI6eyJpZCI6IjUzZTUwMTk2LTE4ZTMtNGJlNi04NDcyLTQ1ZDBjNDMxZjdhZCJ9LCJhY3MiOltdLCJpZHgiOiJuZnZ1bHRETE0tT0EzVUV3dVJHTDE3RFY1UXpIbWhac005Z2xMdnFLVGJacGh1T0NqMnBEUzByRk9XSXhaRjZLIiwidG9rZW5UeXBlIjoiYmVhcmVyIiwiZXhwIjoxNDkwMTQwNjYyLCJpcCI6IjIwNy4xNzMuMTY1LjUwIn0.luWnALBIv9TD_mGHUIddRpOnbVAhkYO-DJtEQitODQX2IEC7cIcbSrvJBKI3i_djeMj69fm-ctr6XFUU7WiEVnBsMh55WK1gkdFqFzImo67apQ5kAV8GTGGbG___kisjl12AMvL09_shU1Sp8F8cHayTZTmSbyyWbbFKT3cZCsg", - "scope": "", - "expires_in": 1800, - "refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJqdGkiOiI1ZDBjMGMyNTkyNmZhNmMxOTM0MjlhZWRkMjJjOTEyYiIsImlhdCI6MTQ5MDEzODg2MiwiaXNzIjoib2F1dGgzLm9yZyIsImF1ZCI6Im9hdXRoMy5vcmciLCJhenAiOiJvYXV0aDMub3JnIiwic3ViIjoiIiwia2lkIjoib2F1dGgzLm9yZyIsInNjcCI6IiIsImFzIjoibG9naW4iLCJncnQiOiJwYXNzd29yZCIsInNydiI6ZmFsc2UsImsiOiJvYXV0aDMub3JnIiwiYXBwIjoib2F1dGgzLm9yZyIsImFjeCI6eyJpZCI6IjE1LUxhM3JnZXBFelBCR0xITHlrdEZOT1NDZFNVOXZJdjlKc2EzTkMxYVJUc3ZmUTZ5cDJuVFFfZWxmdkhzYTEifSwiYXhzIjpbXSwidXNyIjoiYTM3YWVkYTk5ZDQ5MThhMDM0YzM0MmQ2NGNkZjRiN2VkMjM0ZGZlNSIsImFjYyI6eyJpZCI6IjUzZTUwMTk2LTE4ZTMtNGJlNi04NDcyLTQ1ZDBjNDMxZjdhZCJ9LCJhY3MiOltdLCJpZHgiOiJuZnZ1bHRETE0tT0EzVUV3dVJHTDE3RFY1UXpIbWhac005Z2xMdnFLVGJacGh1T0NqMnBEUzByRk9XSXhaRjZLIiwicmVmcmVzaCI6dHJ1ZX0.XljVX_QXgnYw8gyIZjQdxfyDlAAwWtU-kLitibw2_3xo9muLFPCL_dAk5XnMRygyyh5B9H4p4qB2Gb5BEJKJRfAtQ6TeZadTBtxwoY7zcns9f4Nx59VNii4k_Xp3uhJ6fQp8ERvkMgBy52Sj5ag0PFnuIwk35wLdSfiikDGnwKo", - "token": { - "jti": "82e908e19c2b13b16c77be13d19cfa39", - "iat": 1490138862, - "iss": "oauth3.org", - "aud": "oauth3.org", - "azp": "oauth3.org", - "sub": "15-La3rgepEzPBGLHLyktFNOSCdSU9vIv9Jsa3NC1aRTsvfQ6yp2nTQ_elfvHsa1", - "kid": "oauth3.org", - "scp": "", - "as": "login", - "grt": "password", - "srv": false, - "k": "oauth3.org", - "app": "oauth3.org", - "acx": { - "id": "15-La3rgepEzPBGLHLyktFNOSCdSU9vIv9Jsa3NC1aRTsvfQ6yp2nTQ_elfvHsa1" - }, - "axs": [], - "usr": "a37aeda99d4918a034c342d64cdf4b7ed234dfe5", - "acc": { - "id": "53e50196-18e3-4be6-8472-45d0c431f7ad" - }, - "acs": [], - "idx": "nfvultDLM-OA3UEwuRGL17DV5QzHmhZsM9glLvqKTbZphuOCj2pDS0rFOWIxZF6K", - "tokenType": "bearer", - "exp": 1490140662, - "ip": "207.173.165.50", - "client_uri": "oauth3.org", - "provider_uri": "https://oauth3.org" - }, - "refresh": { - "jti": "5d0c0c25926fa6c193429aedd22c912b", - "iat": 1490138862, - "iss": "oauth3.org", - "aud": "oauth3.org", - "azp": "oauth3.org", - "sub": "15-La3rgepEzPBGLHLyktFNOSCdSU9vIv9Jsa3NC1aRTsvfQ6yp2nTQ_elfvHsa1", - "kid": "oauth3.org", - "scp": "", - "as": "login", - "grt": "password", - "srv": false, - "k": "oauth3.org", - "app": "oauth3.org", - "acx": { - "id": "15-La3rgepEzPBGLHLyktFNOSCdSU9vIv9Jsa3NC1aRTsvfQ6yp2nTQ_elfvHsa1" - }, - "axs": [], - "usr": "a37aeda99d4918a034c342d64cdf4b7ed234dfe5", - "acc": { - "id": "53e50196-18e3-4be6-8472-45d0c431f7ad" - }, - "acs": [], - "idx": "nfvultDLM-OA3UEwuRGL17DV5QzHmhZsM9glLvqKTbZphuOCj2pDS0rFOWIxZF6K", - "refresh": true, - "provider_uri": "https://oauth3.org" - } -} \ No newline at end of file diff --git a/well-known/oauth3/callback.html b/well-known/oauth3/callback.html index 2b8eec9..019555c 100644 --- a/well-known/oauth3/callback.html +++ b/well-known/oauth3/callback.html @@ -15,7 +15,7 @@ - + +