implemented getting new access tokens from refresh tokens
This commit is contained in:
parent
0649227fb8
commit
2dfbd235c9
26
rest.js
26
rest.js
@ -386,6 +386,9 @@ module.exports.create = function (bigconf, deps, app) {
|
|||||||
if (req.body.grant_type === 'issuer_token') {
|
if (req.body.grant_type === 'issuer_token') {
|
||||||
return Accounts.restful.createToken.issuerToken(req);
|
return Accounts.restful.createToken.issuerToken(req);
|
||||||
}
|
}
|
||||||
|
if (req.body.grant_type === 'refresh_token') {
|
||||||
|
return Accounts.restful.createToken.refreshToken(req);
|
||||||
|
}
|
||||||
|
|
||||||
throw new OpErr("unknown or un-implemented grant_type '"+req.body.grant_type+"'");
|
throw new OpErr("unknown or un-implemented grant_type '"+req.body.grant_type+"'");
|
||||||
}).then(function (token_info) {
|
}).then(function (token_info) {
|
||||||
@ -448,7 +451,11 @@ module.exports.create = function (bigconf, deps, app) {
|
|||||||
result.scope = token_info.scope;
|
result.scope = token_info.scope;
|
||||||
result.access_token = jwt.sign(payload, pem, Object.assign({expiresIn: req.body.exp || '1d'}, opts));
|
result.access_token = jwt.sign(payload, pem, Object.assign({expiresIn: req.body.exp || '1d'}, opts));
|
||||||
if (req.body.refresh_token) {
|
if (req.body.refresh_token) {
|
||||||
result.refresh_token = jwt.sign(payload, pem, Object.assign({expiresIn: req.body.refresh_exp}, opts));
|
if (token_info.refresh_token) {
|
||||||
|
result.refresh_token = token_info.refresh_token;
|
||||||
|
} else {
|
||||||
|
result.refresh_token = jwt.sign(payload, pem, Object.assign({expiresIn: req.body.refresh_exp}, opts));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
});
|
});
|
||||||
@ -494,6 +501,23 @@ module.exports.create = function (bigconf, deps, app) {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
Accounts.restful.createToken.refreshToken = function (req) {
|
||||||
|
return PromiseA.resolve().then(function () {
|
||||||
|
if (!req.body.refresh_token) {
|
||||||
|
throw new OpErr("missing refresh token");
|
||||||
|
}
|
||||||
|
|
||||||
|
return req.oauth3.verifyAsync(req.body.refresh_token).then(function (token) {
|
||||||
|
return {
|
||||||
|
sub: token.sub,
|
||||||
|
aud: token.aud,
|
||||||
|
azp: token.azp,
|
||||||
|
exp: token.exp,
|
||||||
|
refresh_token: req.body.refresh_token,
|
||||||
|
};
|
||||||
|
});
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
app.get( '/jwks/:sub/:kid.json', Jwks.restful.get);
|
app.get( '/jwks/:sub/:kid.json', Jwks.restful.get);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user