我很难弄清楚如何做一个简单的“自动登录”,将JWT令牌重新连接到axios上... ... [[我不知道是]在哪里写因此当有人刷新页面时,可以将其称为第一件事...
在“普通” VueJS中,可以挂接到应用程序created
事件,例如new Vue({
router,
store,
created() { /* application created hook */ },
render: h => h(app)
}).$mount('#app')
但是在Nuxt中,我们如何完成相同的工作?和client Plugin运行,但是它们在刷新后不运行客户端模式,仅在服务器模式下运行...刷新页面后在客户端中运行代码的正确方法是什么?我也尝试过使用
client Middleware
[添加的设置
以更好地理解我的工作我有2个示例middlewares >> as:
// FILE ./middleware/authenticated.js
export default function (ctx) {
console.log('[MIDDLEWARE] Authenticated, is client:', process.client)
}
和
// FILE ./middleware/refreshToken.js
export default function (ctx) {
console.log('[MIDDLEWARE] Refresh token, is client:', process.client)
}
而且我的布局是:
export default {
components: { ... },
middleware: ['refreshToken', 'authenticated'],
...
}
我还添加了plugin
// FILE ./plugins/auth.js
export default function (ctx) {
console.log('[PLUGIN] Auth, is client:', process.client)
}
并将其设置为plugins: [{ src: '~/plugins/auth' }], ...
什么都没有在客户端上运行...全部都仅在服务器模式下运行(并且我无法在服务器模式下访问localStorage
-我可以最终使用Cookie,以便可以从服务器读取它,但这不是重点)
输出为:
[PLUGIN] Auth, is client: false
[MIDDLEWARE] Refresh token, is client: false
[MIDDLEWARE] Authenticated, is client: false
如何刷新页面后以客户端模式运行任何代码?
我很难弄清楚如何做一个简单的“自动登录”,在那里我将JWT令牌重新连接到axios ...我不知道该在哪里写,所以可以当...
一个客户端插件,例如~plugins/refresh.client.js
将满足您的需求,并且仅在页面加载后在客户端运行一次。