如何解决登录后无法立即获取用户,但刷新有效@nuxt-auth
// Login Component
try {
await this.$auth.loginWith("mg_login",{
data: this.user,});
} catch (e) {
this.$toast.error("Error!",{ duration: 1500 });
}
// Nuxt config
auth: {
strategies: {
'mg_login': {
provider: 'laravel/sanctum',url: `http://localhost`,maxAge: 60 * 60 * 120,endpoints: {
user: {
url: '/api/user',method: 'GET',propertyName: false
},login: {
url: '/login',method: 'POST'
},csrf: {
url: '/sanctum/csrf-cookie',method: 'GET'
},},cookie: {
name: 'mg_session',options: {
path: '/',sameSite: 'none',}
},redirect: {
home: '/'
},
之后我尝试通过在登录组件中使用 $auth.setUser(user) 或 $auth.setUser({user}) 手动设置用户信息,还有在 nuxt.config 中的 property/propertyName : ' '/undefined/false 选项,还是没有希望。
基本上,如果我不刷新页面,则无法获取用户(或设置用户)。 http://localhost/api/user 响应如下:
我现在缺少什么?
解决方法
从 nuxt 配置中删除 cookie 选项解决了所有问题。看起来像 laravel 和 nuxt 把 cookie 放在同名中并导致冲突。
我仍然不明白为什么登录后无法立即获取用户,但需要刷新页面。
,propertyName
用于旧版本的 Auth/Nuxt
,使用 property
如下:
auth: {
strategies: {
'mg_login': {
provider: 'laravel/sanctum',url: `http://localhost`,maxAge: 60 * 60 * 120,user: {
property: false,},endpoints: {
user: {
url: '/api/user',method: 'GET'
},login: {
url: '/login',method: 'POST'
},csrf: {
url: '/sanctum/csrf-cookie',cookie: {
name: 'mg_session',options: {
path: '/',sameSite: 'none',}
},redirect: {
home: '/'
},
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。