Amazon web services aws放大身份验证…如何在成功的身份验证登录上访问令牌?

Amazon web services aws放大身份验证…如何在成功的身份验证登录上访问令牌?,amazon-web-services,authentication,aws-amplify,Amazon Web Services,Authentication,Aws Amplify,我试图弄清楚如何使用Auth库访问从aws amplify接收回来的accessToken、refreshToken和idToken 文档中的示例: 我的用法示例: const user=wait Auth.sign(电子邮件、密码) user有一组无法访问的属性,包括我需要的所有内容。在文档中,不清楚如何获取这些属性,因为示例都记录了结果。有什么想法吗?我相信你能做到 Auth.currentCredentials(credentials => { const tokens = Au

我试图弄清楚如何使用Auth库访问从aws amplify接收回来的accessToken、refreshToken和idToken

文档中的示例:

我的用法示例:

const user=wait Auth.sign(电子邮件、密码)

user
有一组无法访问的属性,包括我需要的所有内容。在文档中,不清楚如何获取这些属性,因为示例都记录了结果。有什么想法吗?

我相信你能做到

Auth.currentCredentials(credentials => {
  const tokens = Auth.essentialCredentials(credentials);
})
哪里将返回所有代币

希望这有帮助。

Auth.currentSession()
将返回一个包含
accessToken
idToken
refreshtToken
的CognitoUserSession

Auth.currentSession().then(res=>{
  let accessToken = res.getAccessToken()
  let jwt = accessToken.getJwtToken()
  //You can print them to see the full objects
  console.log(`myAccessToken: ${JSON.stringify(accessToken)}`)
  console.log(`myJwt: ${jwt}`)
})
CognitoUserSession实际上是以下内容:
CognitoUserSession{idToken:CognitoIdToken,refreshToken:CognitoRefreshToken,accessToken:CognitoAccessToken,clockDrift:0}

在这一点上,可以通过简单的点表示法来访问该对象中的对


示例:检索accessToken并登录到控制台

Auth.currentSession().then(data=>console.log(data.accessToken));
结果将是一个CognitoAccessToken,其形式为
CognitoAccessToken{jwtToken:'',负载:'}

如果您只想在CognitoAccessToken中使用
jwtToken
,那么它只是一个点符号(以log to console为例):

Auth.currentSession().then(data=>console.log(data.accessToken.jwtToken));


注意:如果需要,此方法还会刷新当前会话()。

9,从当前会话获取JWT令牌:

import Auth from '@aws-amplify/auth';

Auth.currentSession().then(data => console.log("JWT", data.getAccessToken().getJwtToken()));

如欲查询:


我在aws amplify repo中发布了这个问题,一位合作者回答说:Auth.currentSession().accessToken.JWTToken这对我有效!如果您使用的是Amplify和AWS并且需要sub(ID),还可以添加
console.log(`sub:${JSON.stringify(accessToken.payload.sub)}`)
const checkCognitoUserSession = async () => {
  const getAwsCredentials = await Auth.currentCredentials();
  const awsCredentials = await Auth.essentialCredentials(getAwsCredentials);

  // accessKeyId, secretAccessKey, sessionToken post login
  return { awsCredentials };
};