没有用户端点的 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也没有访问权限asyncData
和fetch
,这种情况你应该在nuxtServerInit
中使用context.$auth.setUser
以上是关于没有用户端点的 Nuxt 身份验证的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Nuxt 前端访问经过身份验证的 GraphQL API
带有 Firebase 身份验证的 Nuxt s-s-r 身份验证防护