gpt4 book ai didi

axios - [Nuxt.JS]从插件js访问上下文中的$auth对象

转载 作者:行者123 更新时间:2023-12-03 21:14:30 26 4
gpt4 key购买 nike

我想从 'plugins/' 下定义的 js 访问上下文中的 $auth 对象,但我不能。

https://auth.nuxtjs.org/api/auth.html#auth

This module globally injects $auth instance, meaning that you can access it anywhere using this.$auth. For plugins, asyncData, fetch, nuxtServerInit and Middleware, you can access it from context.$auth



上面已经描述过了,但是我的代码(axios-interceptor.js)无法从上下文访问 $auth (它是未定义的)。
需要什么才能访问它?

插件/axios-interceptor.js

export default function (context) {
const { $axios, route, redirect } = context

$axios.interceptors.response.use(
function (response) {
return response
},
function (error) {
const code = parseInt(error.response && error.response.status)
const thisRoutePath = route.path

if ([401, 403].includes(code)) {
if (thisRoutePath !== '/') {
redirect('/?login')
}
}
return Promise.reject(error)
}
)
}

nuxt.config.js

export default {
plugins: [
'@/plugins/axios-interceptor.js'
],

modules: [
'@nuxtjs/axios',
'@nuxtjs/proxy',
'@nuxtjs/auth'
],
axios: {
baseURL: BASE_URL
},
auth: {
cookie: false,
autoFetchUser: false,
redirect: {
login: '/login',
logout: '/login',
callback: '/callback',
home: '/home'
},
strategies: {
local: {
endpoints: {
login: { url: BACKEND_API_PATH_BASE + '/api/v1/login/', method: 'post', propertyName: 'token' },
user: { url: BACKEND_API_PATH_BASE + '/api/v1/users/me', method: 'get', propertyName: false },
logout: false
},
},
}
},
router: {
middleware: [
'auth'
]
},

我想在 axios-interceptor.js 中访问 $auth 的原因是我想在 if ([401, 403].includes(code)) { 中执行 $auth.logout()阻止并删除 token 。

最佳答案

我现在可以通过执行以下操作来访问 $auth

export default {
// plugins: [
// '@/plugins/axios-interceptor.js' ########### REMOVE ###########
// ],
:
(Ommit)
:
auth: {
:
(Ommit)
:
plugins: [
'@/plugins/axios-interceptor.js' // ########### ADD ###########
]
},
(Ommit)
:
}

下面列出了我需要做的事情。
https://auth.nuxtjs.org/recipes/extend.html

关于axios - [Nuxt.JS]从插件js访问上下文中的$auth对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61697598/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com