我正在使用vue-google-oauth2库进行社交认证。它工作正常,因为我能够验证我的自我,我也从后端收到一个令牌。
最初我登录时,通过使用vue-google-oauth2库中的一个函数来检查它是否表示我已经被授权,它在我的浏览器控制台中给出了以下响应:
这一点。$ gAuth.isAuthorized
真正
然后,当我刷新浏览器页面,并且因为我在我的代码中放置了一个调试器命令,然后我再次打印相同的函数,我得到以下响应:
这一点。$ gAuth.isAuthorized
假
我该怎么做才能确保切换标签,重新加载页面或刷新它不会导致这种情况发生?或者这实际上应该发生什么?
您是否已将其保存为会话数据?我不熟悉Angular状态是如何工作的,但是当您设置原始状态时,您可以查找会话密钥“已授权”,如果它不存在,则将auth设置为false,如果存在则将其设置为该值。
localstorage.getItem(item)
和localstorage.setItem(item)
还可以选择制作处理Google身份验证的组件并将其发送到州。
从您链接的vue-google-oauth
页面的库文档中,您需要将该代码发送回后端服务器以创建一个令牌以保持登录状态,因此它的行为符合预期。从这里(https://www.npmjs.com/package/vue-google-oauth2#usage---getting-authorization-code)它说:
正在返回的authCode是您可以发送到后端服务器的一次性代码,以便服务器可以交换自己的access_token和refresh_token
换句话说,您需要对该代码执行某些操作以使其在您的应用中保持不变,否则它只是一次性代码,因此看起来是可以预期的。