当其中一个 API 响应未经授权的 401 (Nuxt-Auth) 时如何注销用户

Meh*_*iee 0 javascript vue.js nuxt.js nuxt-auth

当 API 之一使用 Nuxt-Auth 响应未经授权的 401 时如何注销用户?我使用 AXIOS 和 Nuxt-Auth 的内置函数来请求

我的 nuxt-auth 的 nuxt-config 设置:

    auth: {
        redirect: {
            login: '/login',
            logout: '/',
            callback: '/login',
            home: '/panel/dashboard'
        },
        strategies: {
            local: {
                token: {
                    property: 'token',
                    global: true,
                    type: 'Bearer',
                    required: true,
                },
                user: {
                    property: 'user',
                    autoFetch: true
                },
                endpoints: {
                    login: {url: '/api/auth/login_verify', method: 'post'},
                    logout: {url: '/api/auth/logout', method: 'get'},
                    user: {url: '/api/auth/validate', method: 'get'},
                },
            },
        }
    },
Run Code Online (Sandbox Code Playgroud)

小智 5

由于您使用的是 Axios,因此可以轻松使用拦截器并根据您的要求捕获错误,然后调用注销操作

像下面这样使用创建的插件src/plugins/axios.js就可以工作

export default function ({ $axios }) {
  $axios.onError((error) => {
    if (error.response.status === 401) {
      CALL_LOGOUT_ACTION_HERE
    }
  })
}
Run Code Online (Sandbox Code Playgroud)