【发布时间】:2018-07-01 02:04:35
【问题描述】:
我正在尝试在 AngularJS 2 中实现 Google 身份验证
我关注了this链接
我已经构建了一个应用程序,包含 4 个组件
- 标题组件
- 登录组件
- 详细组件
- 应用组件(根)
登录组件有登录页面代码。因此,我在 login.component.html ->
中包含以下内容<div class="g-signin2" data-onsuccess="onSignIn"></div>
注销按钮包含在 Header 组件中。代码如下:
header.component.html
<div>
<span class="log-out" (click)="signOut()"> Logout </span>
</div>
header.component.ts
constructor (private router:Router, private ngZone: NgZone){
gapi.load('auth2', function () {
gapi.auth2.init()
});
window['signOut'] = (user) => ngZone.run(() => this.signOut());
}
signOut() {
var auth2 = gapi.auth2.getAuthInstance();
auth2.signOut().then(function () {
console.log('User signed out.');
});
this.router.navigate(['']);
}
登出成功后会跳转回登录页面,地址为'',在app-routing.module中设置
当我注销时,我被重定向到登录页面,但 Google 签名按钮消失了。刷新后会再次出现
如果我遗漏了什么,请指导我!
【问题讨论】:
-
可能是因为您的
this.router.navigate(['']);不在signOut方法范围内...将其移至您的console.log所在的位置 -
我做到了。它仍然没有出现。只有在我刷新后才会出现。
-
here 你可以找到你的解决方案并理解为什么不工作......另外,由于我提到的代码问题,我建议你阅读一些关于异步操作的内容。问候
标签: angular google-signin googlesigninapi