[英]Can't fetch user right after login, but refresh works @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',
maxAge: 60 * 60 * 120,
}
},
},
},
redirect: {
home: '/'
},
},
之后,我嘗試通過在登錄組件中使用 $auth.setUser(user) 或 $auth.setUser({user}) 手動設置用戶信息,還在 nuxt.config 中使用 property/propertyName : ' '/undefined/false 選項,仍然沒有希望。
基本上,如果我不刷新頁面,則無法獲取用戶(或設置用戶)。 http://localhost/api/user 響應如下:
我現在缺少什么?
從 nuxt 配置中刪除 cookie 選項解決了所有問題。 似乎 laravel 和 nuxt 將 cookie 放在同名中並導致沖突。
我仍然不明白為什么 auth 無法在登錄后立即獲取用戶,但需要刷新頁面。
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',
method: 'GET'
},
},
cookie: {
name: 'mg_session',
options: {
path: '/',
sameSite: 'none',
maxAge: 60 * 60 * 120,
}
},
},
},
redirect: {
home: '/'
},
},
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.