我可以将 Laravel Sanctum 令牌身份验证与 Nuxt/Auth 一起使用吗?
Can I use Laravel Sanctum Token Authentication with Nuxt/Auth?
我正在尝试使用 Sanctum 与 nuxt/auth
一起获得令牌授权,但一些功能似乎不起作用。
我有一个通过 username/email 和密码对用户进行身份验证的端点,API 方面没有问题,它 returns 具有正确范围的个人访问令牌。
然而,在 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
文档给出的密室策略使用基于 cookie 的身份验证,您可以对 [=13 使用 local 策略=] 基于密室的身份验证。
您不需要手动 setUserToken
或 setUser
,如果您配置正确,Nuxt/Auth
会为您完成。
您可以像下面这样配置它,根据您的端点更改它:
auth: {
strategies: {
local: {
token: {
property: 'token',
},
user: {
property: false,
},
endpoints: {
login: { url: '/auth/login', method: 'post' },
logout: { url: '/auth/logout', method: 'post' },
user: { url: '/auth/user', method: 'get' }
}
}
}
},
并确保在 Laravel 中通过 ['token' => $user->createToken('login')->plainTextToken]
[=19= 登录用户后 return token
]
我正在尝试使用 Sanctum 与 nuxt/auth
一起获得令牌授权,但一些功能似乎不起作用。
我有一个通过 username/email 和密码对用户进行身份验证的端点,API 方面没有问题,它 returns 具有正确范围的个人访问令牌。
然而,在 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
文档给出的密室策略使用基于 cookie 的身份验证,您可以对 [=13 使用 local 策略=] 基于密室的身份验证。
您不需要手动 setUserToken
或 setUser
,如果您配置正确,Nuxt/Auth
会为您完成。
您可以像下面这样配置它,根据您的端点更改它:
auth: {
strategies: {
local: {
token: {
property: 'token',
},
user: {
property: false,
},
endpoints: {
login: { url: '/auth/login', method: 'post' },
logout: { url: '/auth/logout', method: 'post' },
user: { url: '/auth/user', method: 'get' }
}
}
}
},
并确保在 Laravel 中通过 ['token' => $user->createToken('login')->plainTextToken]
[=19= 登录用户后 return token
]