Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 'use strict';
- var AWS = require('aws-sdk');
- var AWSCognito = require('amazon-cognito-identity-js');
- var jwtDecode = require('jwt-decode');
- var user_pool = new AWSCognito.CognitoUserPool({
- UserPoolId : process.env.USER_POOL_ID,
- ClientId : process.env.CLIENT_ID
- });
- const cognito_user = new AWSCognito.CognitoUser({
- Username: process.env.USERNAME,
- Pool: user_pool,
- });
- const authentication_details = new AWSCognito.AuthenticationDetails({
- Password: process.env.PASSWORD,
- });
- cognito_user.authenticateUser(authentication_details, {
- // 成功時
- onSuccess(result){
- // 認証完了トークンを取得。以降はこのトークンで認証済み確認
- console.log('Access Token: ' + result.getAccessToken().getJwtToken() + '\n');
- console.log('Expirations: ' + new Date(result.getAccessToken().getExpiration() * 1000).toISOString() + '\n');
- console.log('Decode : ' + JSON.stringify(jwtDecode(result.getAccessToken().getJwtToken())) + '\n');
- console.log('ID Token: ' + result.getIdToken().getJwtToken() + '\n');
- console.log('Expirations: ' + new Date(result.getIdToken().getExpiration() * 1000).toISOString() + '\n');
- console.log('Decode : ' + JSON.stringify(jwtDecode(result.getIdToken().getJwtToken())) + '\n');
- console.log('Reflesh Token: ' + result.getRefreshToken().getToken() + '\n');
- var refresh_token = new AWSCognito.CognitoRefreshToken({RefreshToken: result.getRefreshToken().getToken()});
- // cognito_userはusernameが必要.
- const new_user = new AWSCognito.CognitoUser({
- Username: process.env.USERNAME,
- Pool: user_pool,
- });
- new_user.refreshSession(refresh_token, (err, result)=>{
- if (err) {
- console.error(err);
- } else {
- // 新しいAccessTokenが取得できる
- console.log('Access Token: ' + result.getAccessToken().getJwtToken() + '\n');
- console.log('Expirations: ' + new Date(result.getAccessToken().getExpiration() * 1000).toISOString() + '\n');
- console.log('Decode : ' + JSON.stringify(jwtDecode(result.getAccessToken().getJwtToken())) + '\n');
- console.log('ID Token: ' + result.getIdToken().getJwtToken() + '\n');
- console.log('Expirations: ' + new Date(result.getIdToken().getExpiration() * 1000).toISOString() + '\n');
- console.log('Decode : ' + JSON.stringify(jwtDecode(result.getIdToken().getJwtToken())) + '\n');
- console.log('Reflesh Token: ' + result.getRefreshToken().getToken() + '\n');
- }
- });
- },
- // エラー
- onFailure(err){
- console.error(err);
- },
- // 初回認証時はパスワードの変更が要求されるので、仮パスワードと同じパスワードを再設定する
- newPasswordRequired(user_attributes, required_attributes){
- console.log('new password required.')
- console.log(user_attributes);
- console.log(required_attributes);
- cognito_user.completeNewPasswordChallenge(authentication_details.password, {}, this);
- },
- });
Add Comment
Please, Sign In to add comment