一个小时后,Cognito的自动注销对我的应用程序来说很好。但是,我想通过一个对话框通知用户,通知他们即将退出,以及是否要继续登录。
我正在开发Angular应用程序,但是任何语言的帮助都会有用。
我没有在用户对象中收到刷新令牌,因此可能会使事情复杂化。不确定这些如何工作。
在Cognito客户端设置中,我选择了“隐式授予”,“电子邮件”,“ openid”和“ aws.cognito.signin.user.admin”。由于这是针对Angular应用程序的,因此我不需要密钥。但是,无论如何,它都包含在用户响应对象中,我需要以某种方式摆脱它。
在Angular的Amplify文档中,我找到了此代码。它看起来很有用,但到目前为止我还没有正确地连接好它,并且什么也没做。我从OnInit调用它,因此在视图开始时会被调用。我把console.logs都放在里面了,什么也没发生。
这称为所有控制台。当我有意注销时,日志会发布。不确定我是否在乎,因为Cognito可以将用户带到首页,这很好。
这是我应该开始的地方,现在我想念的是什么?
import { AmplifyService } from 'aws-amplify-angular';
public getStateChanges() {
this.amplifyService.authStateChange$
.subscribe(authState => {
let signedIn = authState.state === 'signedIn';
console.log("signedIn: ", signedIn);
if (!authState.user) {
this.user = null;
console.log('Logged out!');
} else {
this.user = authState.user;
this.greeting = "Hello " + this.user.username;
console.log('greeting: ', this.greeting);
}
});
}