ฉัน implementing น node.js ปรับแต่งโปรแกรมเบื้องหลัใช้เวบอเมซอน-cognito-ตัวตน-js.
ฉันอยากจะสร้างการการล็อกอิน(ชื่อผู้ใช้งาน,รหัสผ่าน)และ refreshToken(ตั๋วเข้าใช้งาน)APIs.
นี่คือรหัส:
import { AuthenticationDetails, CognitoUser, CognitoUserPool, CognitoRefreshToken } from "amazon-cognito-identity-js"
public loginWithAmazonCognitoIdentity (username: string, password: string){
var authenticationData = {
Username : username,
Password : password,
};
var authenticationDetails = new AuthenticationDetails(authenticationData);
var poolData = { UserPoolId : 'eu-north-1_xxxxxx',
ClientId : '3al0l3mhcxxxxxqgnp789987'
};
var userPool = new CognitoUserPool(poolData);
var userData = {
Username : username,
Pool : userPool
};
var cognitoUser = new CognitoUser(userData);
const user = cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: function (result) {
var accessToken = result.getAccessToken().getJwtToken();
console.log("token: " + accessToken);
var refresh = result.getRefreshToken().getToken();
console.log("RefreshToken: " + refresh);
},
onFailure: function(err) {
console.error(err);
},
});
}
ฟังก์ชันนี้จะได้ค่าเป็น accessToken และ refreshToken โดยไม่มีข้อผิดพลาด.
หลังจากนี้ฉันต้องการจัดเตรียมไว้นี่ฟังก์ชัน:
public refreshToken(refreshToken)
var poolData = { UserPoolId : 'eu-north-1_xxxxxx',
ClientId : '3al0l3mhcxxxxxqgnp789987'
};
var userPool = new CognitoUserPool(poolData);
var userData = {
Username : 'lacucudi',
Pool : userPool
};
var cognitoUser = new CognitoUser(userData);
var token = new CognitoRefreshToken({ RefreshToken: refreshToken })
cognitoUser.refreshSession(token, (err, session) => { if (err) {console.log(err)} else console.log('session: ' + JSON.stringify(session)) });
}
แต่ผ่านไปที่ refreshToken ความเดิมตอนที่แล้วดึงข้อมูลมันจะได้ค่าเป็น:
NotAuthorizedException:ไม่ถูกต้องปรับปรุงรับตั๋วตัว.
ใครบอกฉันอะไรที่ถูกต้องปรับแต่งโปรแกรมเบื้องหลั implementation ของพวกนี้ 2 apis?