希望大家都很好。我正在做一个React项目,在AWS Amplify中有一个无服务器后端。面临身份验证问题,该问题阻止我使用管理操作查询。问题如下:
我得到了";未捕获(承诺中(没有当前用户";或";未捕获(承诺(用户未通过身份验证";在使用Auth。SignIn((方法。我需要从Auth.currentAuthenticatedUser((中获取JWT值并正确登录,以便执行管理任务(需要身份验证(。
其代码为:
try {
const user = await Auth.signIn(username, password);
console.log(user); //prints the CognitoUser object.
console.log(Auth.currentAuthenticatedUser()); //throws any of the two errors mentioned above.
} catch (error) {
console.log(error);
}
当我之前实现这一点时,我能够在身份验证后使用以下方法获得JWT令牌。该功能是:
export const getJWT = async () => {
try{
const userCurrentSession = await Auth.currentSession();
const accessToken = userCurrentSession.getAccessToken();
const JWTvalue = accessToken.getJwtToken();
return JWTvalue;
}catch(error){console.log(error)}
};
如果有人帮忙解决这个问题,我将不胜感激。提前谢谢。
用以下内容替换try
块内部的行:
const user = await Auth.currentAuthenticatedUser();
const JWTvalue = user.signInUserSession.getAccessToken().getJwtToken();
return JWTvalue;