Estoy tratando de descubrir cómo acceder a accessToken, refreshToken e idToken que recibo de aws-amplify usando la biblioteca Auth.
ejemplo en documentos: https://aws.github.io/aws-amplify/media/authentication_guide.html
ejemplo de mi uso:
const user = await Auth.signIn(email, password);
user tiene un montón de propiedades que son inaccesibles, incluido todo lo que necesito. En los documentos, no está claro cómo llegar a estas propiedades porque todos los ejemplos registran el resultado. ¿Algunas ideas?
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}`) })Auth.currentSession() devolverá una CognitoUserSession que contiene accessToken , idToken y refreshToken .
CognitoUserSession es en realidad lo siguiente: CognitoUserSession {idToken: CognitoIdToken, refreshToken: CognitoRefreshToken, accessToken: CognitoAccessToken, clockDrift: 0}
Acceder a pares dentro de ese objeto se puede lograr a través de una notación de puntos directa en este punto.
Ejemplo : recuperar el token de acceso e iniciar sesión en la consola
Auth.currentSession().then(data => console.log(data.accessToken)); El resultado será un CognitoAccessToken con el formato CognitoAccessToken { jwtToken: '', payload: ''}
Si solo desea el jwtToken dentro de CognitoAccessToken , es solo una notación de puntos hasta el final (con el ejemplo de registro en la consola):
Auth.currentSession().then(data => console.log(data.accessToken.jwtToken));Nota : este método también actualiza la sesión actual si es necesario ( referencia ).
Creo que puedes hacer
Auth.currentCredentials(credentials => { const tokens = Auth.essentialCredentials(credentials); })donde essentialCredentials devolverá todos los tokens
Espero que esto ayude.