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 @@
-
+
+