Advertisement
Guest User

Untitled

a guest
Aug 17th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.41 KB | None | 0 0
  1. //
  2. // リフレッシュトークンを使ってアクセストークンを取得する場合
  3. //
  4. if (req.body.grant_type == 'refresh_token'){
  5. // DBからリフレッシュトークンを検証する
  6. nosql.one(function(token) {
  7. if (token.refresh_token == req.body.refresh_token) {
  8. return token;
  9. }
  10. }, function(err, token) {
  11. if (token) {
  12. // 合致したリフレッシュトークンと、クライアントクレデンシャルが合致しない場合、
  13. // リフレッシュトークンが漏洩している可能性があるので削除する
  14. if (token.client_id != clientId) {
  15. nosql.remove(function(found) {
  16. return (found == token)
  17. }, function () {} );
  18. res.status(400).json({error: 'リフレッシュトークンの持ち主じゃないのでは'});
  19. }
  20.  
  21. // 正当なリフレッシュトークンと判断されたら、アクセストークンを再生成する
  22. var access_token = randomstring.generate();
  23. nosql.insert({ access_token: access_token, client_id: clientId });
  24. var token_response = {
  25. access_token: access_token,
  26. refresh_token: refresh_token,
  27. token_type: 'Bearer'
  28. };
  29. res.status(200).json(token_response);
  30. } else {
  31. res.status(400).json({error: 'リフレッシュトークンが見つからないぞ'});
  32. }
  33. });
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement