如何解决我可以在 Nuxt/Auth 中使用 Laravel Sanctum 令牌身份验证吗?
我正在尝试通过 Sanctum 使用 nuxt/auth
获得令牌身份验证,但其中一些功能似乎不起作用。
我有一个端点,通过用户名/电子邮件和密码对用户进行身份验证,API 方面没有问题,它返回一个具有正确范围的个人访问令牌。
然而,在 nuxt/auth
中,方法 setUserToken
和 setUser
都应该能够处理以不同方式授予的用户登录,但是这两种方法都没有完成它应该做的事情.
this.$auth.loginWith('sanctum',{
data: this.form
}).then((response) => {
// this should set the token to storage
// then fetch the user with the token
// but it only sets the token to storage
this.$auth.setUserToken(response.data)
.then(() => {
// so I have to fetch the user myself with VuexORM
this.user.api().get('/me')
.then((result) => {
// my user is set to the model,but not to auth
this.$auth.setUser(result.response.data) // sets user but won't set loggedIn to true.
})
})
}).catch((e) => {
console.log(e.message)
})
那么在这一切失败的情况下,我是否遗漏了什么?还是我应该完全跳过nuxt/auth
?
解决方法
它适用于 Nuxt/Auth
,但使用 Nuxt/Auth
文档给出的 sanctum 策略使用基于 cookie 的身份验证,您可以使用 local 策略进行基于 token
的身份验证圣所。
您无需手动 setUserToken
或 setUser
,如果您已正确配置,Nuxt/Auth
会为您完成。
您可以像下面那样配置它,根据您的端点进行更改:
auth: {
strategies: {
local: {
token: {
property: 'token',},user: {
property: false,endpoints: {
login: { url: '/auth/login',method: 'post' },logout: { url: '/auth/logout',user: { url: '/auth/user',method: 'get' }
}
}
}
},
并确保在用户通过 token
['token' => $user->createToken('login')->plainTextToken]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。