updated the document for the grant routes
This commit is contained in:
parent
030f2d6ae6
commit
4d326726db
26
README.md
26
README.md
@ -103,3 +103,29 @@ the issuer's subject. Resources providers will not have that subject but will
|
||||
need to be able to retrieve only public keys that actually belong to the user
|
||||
that are trying to validate.
|
||||
|
||||
Grants
|
||||
------
|
||||
Grants represent the list of resources the user has allowed a party to access.
|
||||
We store those permissions on the server so that users will not have to grant
|
||||
the same privileges multiple times on different machines.
|
||||
|
||||
### Saving/Modifying Grants ###
|
||||
* **URL** `:scheme//:hostname/api/issuer@oauth3.org/grants/:sub/:azp`
|
||||
* **Method** `POST`
|
||||
* **Url Params**
|
||||
* `sub`: The [subject](#subject) using the issuer hostname as the `azp`
|
||||
* `azp`: The authorized party the grants are for
|
||||
* **Body Params**
|
||||
* `scope`: A comma separated list of the permissions granted
|
||||
|
||||
### Retrieving Grants ###
|
||||
* **URL** `:scheme//:hostname/api/issuer@oauth3.org/grants/:sub/:azp`
|
||||
* **Method** `GET`
|
||||
* **Url Params**
|
||||
* `sub`: The [subject](#subject) using the issuer hostname as the `azp`
|
||||
* `azp`: The authorized party the grants are for
|
||||
* **Response**
|
||||
* `sub`: The same `sub` from the url
|
||||
* `azp`: The same `azp` from the url
|
||||
* `scope`: A comma separated list of the permissions granted
|
||||
* `updatedAt`: The timestamp for the most recent change to the grants
|
||||
|
8
rest.js
8
rest.js
@ -110,12 +110,12 @@ module.exports.create = function (bigconf, deps, app) {
|
||||
}
|
||||
|
||||
var allowed = token.axs.some(function (acc) {
|
||||
return (req.params.sub || req.query.sub) === (acc.id || acc.ppid || acc.appScopedId);
|
||||
return req.params.sub === (acc.id || acc.ppid || acc.appScopedId);
|
||||
});
|
||||
if (!allowed) {
|
||||
throw new Error("no account pairwise identifier matching '" + req.params.sub + "'");
|
||||
}
|
||||
sub = req.params.sub || req.query.sub;
|
||||
sub = req.params.sub;
|
||||
}
|
||||
|
||||
return sub;
|
||||
@ -124,7 +124,7 @@ module.exports.create = function (bigconf, deps, app) {
|
||||
|
||||
Grants.restful.get = function (req, res) {
|
||||
var promise = Grants.authorizeReq(req).then(function (sub) {
|
||||
return req.Store.get(sub+'/'+(req.params.azp || req.query.azp));
|
||||
return req.Store.get(sub+'/'+req.params.azp);
|
||||
}).then(function (result) {
|
||||
if (!result) {
|
||||
throw new Error('no grants found');
|
||||
@ -133,6 +133,7 @@ module.exports.create = function (bigconf, deps, app) {
|
||||
sub: result.sub,
|
||||
azp: result.azp,
|
||||
scope: result.scope,
|
||||
updatedAt: result.updatedAt
|
||||
};
|
||||
});
|
||||
|
||||
@ -163,7 +164,6 @@ module.exports.create = function (bigconf, deps, app) {
|
||||
app.post( '/jwks/:sub', Jwks.restful.saveNew);
|
||||
|
||||
app.use( '/grants', attachSiteStore.bind(null, 'IssuerOauth3OrgGrants'));
|
||||
app.get( '/grants', Grants.restful.get);
|
||||
app.get( '/grants/:sub/:azp', Grants.restful.get);
|
||||
app.post( '/grants/:sub/:azp', Grants.restful.saveNew);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user