AWS放大身份验证...如何在成功的Auth.signIn上访问令牌?

spe*_*ine 6 authentication amazon-web-services aws-amplify

我试图弄清楚如何访问使用Auth库从aws-amplify获得的accessToken,refreshToken和idToken。

文档中的示例:https : //aws.github.io/aws-amplify/media/authentication_guide.html

我的用法示例:

const user = await Auth.signIn(email, password);

user有很多无法访问的属性,包括我需要的一切。在文档中,尚不清楚如何获取这些属性,因为这些示例都记录了结果。有任何想法吗?

xrp*_*pza 13

Auth.currentSession()会返回一个CognitoUserSessionaccessTokenidTokenrefreshToken

CognitoUserSession实际上是以下情况:CognitoUserSession {idToken: CognitoIdToken, refreshToken: CognitoRefreshToken, accessToken: CognitoAccessToken, clockDrift: 0}

此时可以通过简单的点符号来访问该对象内的对。


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

Auth.currentSession().then(data => console.log(data.accessToken));
Run Code Online (Sandbox Code Playgroud)

结果将是形式为CognitoAccessTokenCognitoAccessToken { jwtToken: '', payload: ''}

如果你只是想jwtToken在内部CognitoAccessToken,它只是点记号一路下滑(与日志主机为例):

Auth.currentSession().then(data => console.log(data.accessToken.jwtToken));
Run Code Online (Sandbox Code Playgroud)

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


Oma*_*mar 5

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}`)
})
Run Code Online (Sandbox Code Playgroud)


iur*_*rii 4

我相信你能做到

Auth.currentCredentials(credentials => {
  const tokens = Auth.essentialCredentials(credentials);
})
Run Code Online (Sandbox Code Playgroud)

其中EssentialCredentials将返回所有令牌

希望这可以帮助。