Guest User

Untitled

a guest
Mar 25th, 2018
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.12 KB | None | 0 0
  1. 'use strict';
  2.  
  3. var AWS = require('aws-sdk');
  4. var AWSCognito = require('amazon-cognito-identity-js');
  5. var jwtDecode = require('jwt-decode');
  6.  
  7. var user_pool = new AWSCognito.CognitoUserPool({
  8. UserPoolId : process.env.USER_POOL_ID,
  9. ClientId : process.env.CLIENT_ID
  10. });
  11.  
  12. const cognito_user = new AWSCognito.CognitoUser({
  13. Username: process.env.USERNAME,
  14. Pool: user_pool,
  15. });
  16.  
  17. const authentication_details = new AWSCognito.AuthenticationDetails({
  18. Password: process.env.PASSWORD,
  19. });
  20.  
  21. cognito_user.authenticateUser(authentication_details, {
  22. // 成功時
  23. onSuccess(result){
  24. // 認証完了トークンを取得。以降はこのトークンで認証済み確認
  25. console.log('Access Token: ' + result.getAccessToken().getJwtToken() + '\n');
  26. console.log('Expirations: ' + new Date(result.getAccessToken().getExpiration() * 1000).toISOString() + '\n');
  27. console.log('Decode : ' + JSON.stringify(jwtDecode(result.getAccessToken().getJwtToken())) + '\n');
  28.  
  29. console.log('ID Token: ' + result.getIdToken().getJwtToken() + '\n');
  30. console.log('Expirations: ' + new Date(result.getIdToken().getExpiration() * 1000).toISOString() + '\n');
  31. console.log('Decode : ' + JSON.stringify(jwtDecode(result.getIdToken().getJwtToken())) + '\n');
  32.  
  33. console.log('Reflesh Token: ' + result.getRefreshToken().getToken() + '\n');
  34.  
  35. var refresh_token = new AWSCognito.CognitoRefreshToken({RefreshToken: result.getRefreshToken().getToken()});
  36. // cognito_userはusernameが必要.
  37. const new_user = new AWSCognito.CognitoUser({
  38. Username: process.env.USERNAME,
  39. Pool: user_pool,
  40. });
  41. new_user.refreshSession(refresh_token, (err, result)=>{
  42. if (err) {
  43. console.error(err);
  44. } else {
  45. // 新しいAccessTokenが取得できる
  46. console.log('Access Token: ' + result.getAccessToken().getJwtToken() + '\n');
  47. console.log('Expirations: ' + new Date(result.getAccessToken().getExpiration() * 1000).toISOString() + '\n');
  48. console.log('Decode : ' + JSON.stringify(jwtDecode(result.getAccessToken().getJwtToken())) + '\n');
  49.  
  50. console.log('ID Token: ' + result.getIdToken().getJwtToken() + '\n');
  51. console.log('Expirations: ' + new Date(result.getIdToken().getExpiration() * 1000).toISOString() + '\n');
  52. console.log('Decode : ' + JSON.stringify(jwtDecode(result.getIdToken().getJwtToken())) + '\n');
  53.  
  54. console.log('Reflesh Token: ' + result.getRefreshToken().getToken() + '\n');
  55. }
  56. });
  57. },
  58. // エラー
  59. onFailure(err){
  60. console.error(err);
  61. },
  62.  
  63. // 初回認証時はパスワードの変更が要求されるので、仮パスワードと同じパスワードを再設定する
  64. newPasswordRequired(user_attributes, required_attributes){
  65. console.log('new password required.')
  66. console.log(user_attributes);
  67. console.log(required_attributes);
  68. cognito_user.completeNewPasswordChallenge(authentication_details.password, {}, this);
  69. },
  70. });
Add Comment
Please, Sign In to add comment