Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //
- // リフレッシュトークンを使ってアクセストークンを取得する場合
- //
- if (req.body.grant_type == 'refresh_token'){
- // DBからリフレッシュトークンを検証する
- nosql.one(function(token) {
- if (token.refresh_token == req.body.refresh_token) {
- return token;
- }
- }, function(err, token) {
- if (token) {
- // 合致したリフレッシュトークンと、クライアントクレデンシャルが合致しない場合、
- // リフレッシュトークンが漏洩している可能性があるので削除する
- if (token.client_id != clientId) {
- nosql.remove(function(found) {
- return (found == token)
- }, function () {} );
- res.status(400).json({error: 'リフレッシュトークンの持ち主じゃないのでは'});
- }
- // 正当なリフレッシュトークンと判断されたら、アクセストークンを再生成する
- var access_token = randomstring.generate();
- nosql.insert({ access_token: access_token, client_id: clientId });
- var token_response = {
- access_token: access_token,
- refresh_token: refresh_token,
- token_type: 'Bearer'
- };
- res.status(200).json(token_response);
- } else {
- res.status(400).json({error: 'リフレッシュトークンが見つからないぞ'});
- }
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement