我是AWS领域的新手,尝试从Cognito令牌创建和认证会话时遇到问题。我想使用Auth,因为我知道它会自动刷新访问令牌。
我们有一个对等站点,用户可以在该站点登录,然后他们可以移动到我们的站点。我们从对等站点接收用户的AWS Cognito令牌(访问,ID和刷新),并且我们希望使用这些令牌来授权REST API调用。
我计划使用AWS-Amplify:Auth.currentSession()。但是为此,我们需要根据令牌创建会话。
我尝试执行以下操作:
access_token = ''//the access token value
id_token= '' //the id token
refresh_token = '' //the refresh token
AuthConfig = {
region: '', //the region value
userPoolId: '', //the user pool id value
clientId: '', //the client id value
userPoolWebClientId: '' //the user pool web client id value
};
amplify = Amplify.configure({
Auth: this.AuthConfig
});
localSession = new CognitoUserSession({
IdToken: new CognitoIdToken({ IdToken: this.id_token }),
RefreshToken: new CognitoRefreshToken({ RefreshToken: this.refresh_token }),
AccessToken: new CognitoAccessToken({ AccessToken: this.access_token }),
});
async t()
{
Auth.currentCredentials = async () => this.localSession;
try
{
Auth.currentSession().then(function(session) {
console.log(JSON.stringify(session))
}, function(err) {
console.log(err)
})
}
catch (ex)
{
console.warn(`Exception: ${ex}`);
}
}
但是我有一个例外:“没有当前用户”。
如何从令牌创建会话?