重新加载或刷新页面会删除vue.js中的授权

时间:2019-03-06 17:28:24

标签: javascript vue.js vuejs2 single-page-application

我正在使用vue-google-oauth2库进行社交身份验证。我可以验证自己的身份,并且也从后端收到令牌,因此效果很好。

最初登录时,使用的功能是vue-google-oauth2库的一部分,该功能用于检查它是否表明我已被授权,它在我的系统中给出以下响应浏览器的控制台:

  

this。$ gAuth.isAuthorized

     

true

然后刷新浏览器页面时,由于在代码中放置了调试器命令,因此我再次打印相同的功能, 我得到以下回应:

  

this。$ gAuth.isAuthorized

     

false

我该怎么做才能确保切换选项卡,重新加载页面或刷新页面不会发生这种情况?还是这实际上是应该发生的事情?

2 个答案:

答案 0 :(得分:0)

您是否考虑过将其另存为会话数据?我不熟悉Angular状态的工作原理,但是当您设置原始状态时,您可以查找会话密钥“ authorized”,如果不存在,请将auth设置为false,如果存在则将其设置为value。

localstorage.getItem(item)localstorage.setItem(item)

也可以选择制作一个组件来处理google auth并将其发送到状态。

答案 1 :(得分:0)

vue-google-oauth页面的库文档中,您链接该页面时说,您需要将该代码发送回后端服务器以创建令牌来保持登录状态,因此它的行为符合预期。从这里(https://www.npmjs.com/package/vue-google-oauth2#usage---getting-authorization-code)指出:

  

所返回的authCode是您可以使用的一次性代码   发送到您的后端服务器,以便该服务器可以交换其   自己的access_token和refresh_token

换句话说,您需要对该代码进行一些操作以使其持久存在于您的应用程序中,否则它只是一次性代码,因此看起来是可以预期的。