首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >刷新页面后,Nuxt auth.user对象将清空

刷新页面后,Nuxt auth.user对象将清空
EN

Stack Overflow用户
提问于 2022-10-12 16:42:39
回答 1查看 32关注 0票数 0

我已经创建了一个nuxt应用程序,并为API提供了一个laravel服务器。在登录时,响应返回user对象和auth令牌。因此,一旦登录,$auth.user就被设置为user对象。当我刷新时,$auth.user设置为{},而loggedIn仍然为真。我该怎么解决这个问题。

这是我下面的登录功能

代码语言:javascript
运行
复制
async userLogin() {
  await this.$auth.loginWith('local', { data: this.login })
  .then(async (res) => {
    if(res.data.success){
        const data = res.data.data.user;
        this.$auth.setUser(data)
  })
},

这是我的nuxt.config文件

代码语言:javascript
运行
复制
  auth: {
    strategies: {
      local: {
        scheme: 'refresh',
        localStorage:{
          prefix: 'auth.'
        },
        token:{
          prefix: 'token.',
          property: 'data.authorization.token',
          type: 'Bearer',
          global: true,
        },
        refreshToken:{
          prefix: 'refresh_token.',
          property: 'data.authorization.token',

        },
        user: {
          property: false,
          autoFetch: false
        },
        endpoints: {
          login: { url: '/login', method: 'post' },
          logout: { url: '/logout', method: 'post' },
          refresh: { url: '/refresh', method: 'post'},
          user: false
        }
      }
    },
    plugins: ['~/plugins/auth.js']
  },

我在某个地方读到应该使用this.$auth.$storage.setUniversal(用户)。我尝试过这样做,但是当我登录时,auth.user对象是空的,没有刷新。

请帮帮忙!

EN

回答 1

Stack Overflow用户

发布于 2022-10-12 16:52:30

看起来,您需要将用户端点设置为false

如果您看一下nuxt文档https://auth.nuxtjs.org/schemes/local/#fetch-user

auth模块不保存有关用户的信息,因此需要有一种方法来获取用户的信息,例如页面重新加载。这就是用户端点的用途。默认情况下,这也是在成功登录后调用的。

因此,这解释了为什么在登录时对象不是空的,但是在刷新时它又是空的。

看看这个例子--注意用户端点和autoFetch设置为true (默认设置为true )。

代码语言:javascript
运行
复制
 auth: {
  strategies: {
    local: {
      token: {
        property: 'token',
        global: true,
        // required: true,
        // type: 'Bearer'
      },
      user: {
        property: 'user',
        autoFetch: true
      },
      endpoints: {
        login: { url: '/api/auth/login', method: 'post' },
        logout: { url: '/api/auth/logout', method: 'post' },
        user: { url: '/api/auth/user', method: 'get' }
      }
    }
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74045332

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档