【发布时间】:2016-12-29 14:48:23
【问题描述】:
我对在 Firebase 中看到的一些行为感到有些困惑。我从未使用过旧版本,但我相信 getRedirectResult 是新的,因为他们与 Google 联手。
我有一个 SPA,我将 Vue.js 与 vue-router 和 Firebase 一起用于。有一个登录页面,然后是另一个用户可以登录或不登录的视图。登录是通过重定向完成的。加载第二个视图时,我检查 vue-router 'activate' 钩子中的 getRedirectResult,如果有用户,则对用户信息做一些其他的事情。
问题是这样发展的:
- 我们在第二页。用户登录。调用 getRedirectResult 并找到用户。耶。
- 用户注销。我们又回到了着陆页。
- 我们单击一个按钮,将我们带到第二页。调用 getRedirectResult 并找到以前的用户。什么?!不!
我找不到任何关于我是否遗漏了某些内容并需要进行某种额外检查,或者在注销后以某种方式强制刷新页面以使其忘记最后一个用户登录的信息,或者是否会考虑这样做一个错误。任何帮助将不胜感激!
在 vue 组件路由器“激活”钩子的第二页上调用 getRedirectResult:
firebase.auth().getRedirectResult()
.then((result) => {
return result.user;
}).then((user) => {
// Do stuff.
});
更新:通过在注销回调中进行硬页面刷新解决,如下:
firebase.auth().signOut()
.then(() => {window.location.href = '/'});
【问题讨论】:
-
您好,除了硬刷新之外,您找到解决此问题的方法了吗?
-
@user482594 不;找到该修复程序后,我就停止了工作。
-
我就此联系了 google firebase 支持团队(案例:0-7351000018196),他们说这是预期的行为.. wtf?据他们说,要从最初使用 Facebook 登录的应用程序中注销用户,该应用程序将需要使用 Facebook SDK 来执行此操作。那不是火力基地!
-
您好,硬页面刷新是否仍然有效?我在这里尝试,但它总是重定向到
/login
标签: javascript firebase vue.js firebase-authentication vue-router