如何在NuxtAuth v4中获取token值并解决对应lint报错问题
Nuxt Auth v4.9 正确获取token及消除lint报错方案
正确获取token的方法
你之前直接访问_state、_token这类下划线开头属性的方式不符合规范,这类属性是框架内部维护的非公开私有属性,本身就不支持外部直接调用。Nuxt Auth官方提供了稳定的公开API用于获取token:
- 通用适配当前认证策略的获取方式:
const token = this.$auth.strategy.token.get()
- 明确指定local策略的获取方式:
const token = this.$auth.getToken('local')
注意:调用获取token的方法前请确保用户已完成登录认证,否则返回值为null。
lint报错消除方法
你切换为上述官方公开API后,原本访问私有属性触发的lint报错会自动消失。如果还有其他和$auth相关的lint报错,按以下场景处理:
- 如果是ESlint报
$auth 未定义错误:
在项目ESlint配置文件(.eslintrc.js / .eslintrc.json)的globals配置项中添加声明即可:
module.exports = { // 其余原有配置保持不变 globals: { $auth: 'readonly' } }
- 如果是TypeScript报
$auth 不存在于Vue实例类型上的错误:
在项目的全局类型声明文件(比如shims-vue.d.ts)中补充类型声明即可:
declare module 'vue/types/vue' { interface Vue { $auth: any } }
如果有适配v4.9版本的@nuxtjs/auth类型包,直接安装对应类型包也可以解决该报错。
内容的提问来源于stack exchange,提问作者morteza mortezaie
相关产品推荐
相关产品推荐

