Nuxt.js Auth 刷新工作
后端 Laravel 中的刷新令牌运行得很好,没有任何问题。\ 那么,接下来就该由 Nuxt.js Auth 来处理了…… 如果 \$axios 的请求头中有认证信息,就通过将其替换为新令牌的方式……\ 我非常自然地更改了令牌设置,并确认它能够正常运行,不会中断。 但是,这里出现的问题是……刷新页面时的问题!!\ 刷新
后端 Laravel 中的刷新令牌运行得很好,没有任何问题。
那么,接下来就该由 Nuxt.js Auth 来处理了……
如果 $axios 的请求头中有认证信息,就通过将其替换为新令牌的方式……
我非常自然地更改了令牌设置,并确认它能够正常运行,不会中断。
但是,这里出现的问题是……刷新页面时的问题!!
刷新页面时,Auth 会使用该令牌(大概是 Cookie 值吧?)
调用 user……如果调用成功,它似乎就会把新的用户数据保存到本地存储中并显示出来……
如果失败,则会保留原有的本地存储……
(如果设置了 resetOnError: true 选项,那么服务器端调用失败时,就会执行 auth.reset(),清空本地存储并将用户登出。)
好吧……登出也没什么不好……但是,刷新时间到之后再刷新页面时,它会把新的 user 数据连同包含 payload 的令牌一起返回……
接收 payload 数据并写入新的本地存储,这倒是挺好!
但是,请求头中会收到刷新后的认证令牌,我得抓住这个令牌!!然后!!把它作为新令牌设置到 Auth 里,可就是不行……
我原本的想法是把 Axios 放进插件里,然后在服务器上调用它时,把收到的响应原封不动地注册到 Auth 中……但是……行不通……
不知道为什么……
之后我会继续找找……
即使在插件中设置 ssr: true,也无法使用 Auth……
https://auth.nuxtjs.org/api/options.html#plugins
https://auth.nuxtjs.org/recipes/extend.html
我在这里确认过了。说是直接向 Auth 添加插件时就可以使用……
就这样,我确认了可以在插件中使用 Auth,但这样一来,Axios 在服务器端无法运行的问题又出现了……(为什么……?)
这是顺序的问题。(总之是调用的问题)
我真是个笨蛋……明明只要用 axios 接收数据,然后注册到 Auth 令牌里就行了……原来问题就这么简单……
解决了。 - _