没有用户端点的 Nuxt 身份验证

Posted

技术标签:

【中文标题】没有用户端点的 Nuxt 身份验证【英文标题】:Nuxt auth without the user endpoint 【发布时间】:2021-01-12 02:06:40 【问题描述】:

我正在使用 Nuxt 身份验证,但我没有用户的端点,在 nuxt.config 中将端点设置为 false 并且在 loginWith 之后我在开玩笑地手动设置用户。

问题是刷新后我已登录但我没有任何用户信息(姓名、电子邮件...)我在这里缺少什么?

nuxt.config 文件:

  auth: 
    strategies: 
      local: 
        endpoints: 
          login: 
            url: '/api/users/login/',
            method: 'post',
            propertyName: 'token',
          ,
          logout:  url: '/api/users/logout/', method: 'post' ,
          user:  url: '/api/users/auth/', method: 'post' ,
          // user: false,
        ,
        autoFetchUser: false,
        tokenName: 'Authorization',
        tokenType: 'Token',
        // tokenRequired: true,
        // globalToken: true,
      ,
    ,
  ,

登录表单文件

     const  data  = await this.$auth.loginWith('local', 
          data:  username: this.email, password: this.password ,
        );
        this.$auth.setUser(data);

【问题讨论】:

【参考方案1】:

当您登录时,用户信息将从登录数据返回,当您刷新时没有用户端点,那么auth插件无法检索您的用户信息,因此您必须手动操作并setUser自己

【讨论】:

谢谢。假设我已将其保存在 localStorage 中,我在哪里手动刷新 setUser?我尝试在 defeultt.vue 文件中使用 created 来做这件事,但我现在发现了我的服务器和客户端之间的差异。 在mount前设置数据会导致服务端和客户端不匹配,同样layout也没有访问权限asyncDatafetch,这种情况你应该在nuxtServerInit中使用context.$auth.setUser

以上是关于没有用户端点的 Nuxt 身份验证的主要内容,如果未能解决你的问题,请参考以下文章

如何从 Nuxt 前端访问经过身份验证的 GraphQL API

带有 Firebase 身份验证的 Nuxt s-s-r 身份验证防护

为啥在 nuxt-auth-next 中进行 google 授权后用户未通过身份验证?

防止 Nuxt 身份验证重定向到 400 状态

Nuxt Auth 模块经过身份验证的用户数据

在 nuxtjs 中刷新页面后如何保持用户身份验证?