出现此问题的原因是用户未登录,因此没有'cognitoUser'可用于身份验证服务。需要添加以下代码以检查用户是否已登录:
if(this.userPool.getCurrentUser() != null){
this.userPool.getCurrentUser().getSession((err, session) => {
if (err) {
console.log(err);
reject();
}
else {
this.session = session;
this.cognitoUser = this.userPool.getCurrentUser();
console.log('User authorised: ', this.cognitoUser.username);
resolve(session);
}
});
}
else{
console.log('No user authorised');
reject();
}
这将检查当前用户是否存在,如果存在,则获取会话并授权用户。否则,控制台将输出'No user authorised”。