Merge branch 'master' into issuer-rewrite
# Conflicts: # oauth3.issuer.js
This commit is contained in:
commit
c250ab07f4
12
README.md
12
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**:
|
||||
|
|
|
@ -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));
|
||||
|
|
|
@ -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' })");
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
}
|
|
@ -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"
|
||||
}
|
||||
}
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
<!-- TODO permanently cache with appcache (or service worker?) -->
|
||||
<!-- TODO slim this all down to a single file -->
|
||||
<script src="/assets/org.oauth3/oauth3.core.js"></script>
|
||||
<script src="../../assets/oauth3.org/oauth3.core.js"></script>
|
||||
<script>
|
||||
;(function () {
|
||||
'use strict';
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
{ "terms": [ "oauth3.org/tos/draft" ]
|
||||
, "api": "api.:hostname"
|
||||
, "authorization_dialog": { "url": "#/authorization_dialog" }
|
||||
, "access_token": { "method": "POST", "url": "api/org.oauth3.provider/access_token" }
|
||||
, "otp": { "method": "POST", "url": "api/org.oauth3.provider/otp" }
|
||||
, "credential_otp": { "method": "POST", "url": "api/org.oauth3.provider/otp" }
|
||||
, "credential_meta": { "url": "api/org.oauth3.provider/logins/meta/:type/:id" }
|
||||
, "credential_create": { "method": "POST", "url": "api/org.oauth3.provider/logins" }
|
||||
, "grants": { "method": "GET", "url": "api/org.oauth3.provider/grants/:azp/:sub" }
|
||||
, "authorization_decision": { "method": "POST", "url": "api/org.oauth3.provider/authorization_decision" }
|
||||
, "access_token": { "method": "POST", "url": "api/issuer@oauth3.org/access_token" }
|
||||
, "otp": { "method": "POST", "url": "api/issuer@oauth3.org/otp" }
|
||||
, "credential_otp": { "method": "POST", "url": "api/issuer@oauth3.org/otp" }
|
||||
, "credential_meta": { "url": "api/issuer@oauth3.org/logins/meta/:type/:id" }
|
||||
, "credential_create": { "method": "POST", "url": "api/issuer@oauth3.org/logins" }
|
||||
, "grants": { "method": "GET", "url": "api/issuer@oauth3.org/grants/:azp/:sub" }
|
||||
, "authorization_decision": { "method": "POST", "url": "api/issuer@oauth3.org/authorization_decision" }
|
||||
, "callback": { "method": "GET", "url": ".well-known/oauth3/callback.html#/" }
|
||||
, "logout": { "method": "GET", "url": "#/logout/" }
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<body>
|
||||
OAuth3 RPC
|
||||
|
||||
<script src="/assets/org.oauth3/oauth3.core.js"></script>
|
||||
<script src="../../assets/oauth3.org/oauth3.core.js"></script>
|
||||
<script>
|
||||
;(function () {
|
||||
'use strict';
|
||||
|
|
Loading…
Reference in New Issue