在 Nuxt auth-module 中设置令牌

Posted

技术标签:

【中文标题】在 Nuxt auth-module 中设置令牌【英文标题】:Set token in Nuxt auth-module 【发布时间】:2021-09-11 16:18:24 【问题描述】:

我在我的项目中使用Nuxt auth-module。 login API 以这种结构返回数据:

data:
    data:
        user:
        bio: null
        createdAt: "2021-06-29T12:28:42.442Z"
        email: "name@info.co"
        id: 1
        image: null
        token: "token"
        updatedAt: "2021-06-29T12:28:42.447Z"
        username: "name"
        
     
 

在 nuxtconfig 中我设置了这样的模块配置:

  auth: 
    strategies: 
      local: 
        endpoints: 
          login:  url: 'users/login', method: 'post', propertyName: 'data.user.token' ,
          user:  url: 'me', method: 'get', propertyName: 'data' ,
          logout: false
        
      
    
  ,

但令牌没有保存在应用程序中。有什么解决办法吗?

所以我找到了解决方案:

  auth: 
    strategies: 
      local: 
        token: 
          property: 'user.token', // /user endpoint API returns user object
          type: 'Token' // if your token type is not Bearer
        ,
        user: 
          user: 'user'
        ,
        endpoints: 
          login:  url: '/users/login', method: 'post' ,
          user:  url: '/user', method: 'get' ,
          logout: false
        
      
    
  ,

【问题讨论】:

【参考方案1】:

结构是 data.data.user 而不是 data.user,因此 IMO 您需要使用类似这样的配置来指定它

auth: 
  strategies: 
    local: 
      user: 
        property: 'data.user', // or maybe 'data.data.user'
        // autoFetch: true
      ,
    
  

如documentation 中所述。

【讨论】:

以上是关于在 Nuxt auth-module 中设置令牌的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Nuxt 配置中设置 .env 文件路径?

如何在 nuxt/axios 中设置 baseUrl?

Nuxt 如何在开发或生产环境中设置 baseURL

如何在 Nuxt 中设置 netlify 表单

如何在 NuxtJS 中设置全局 $axios 标头

Nuxt.js 中设置 div的css的 height 为100%