fix: 修复 hooks.ts 中 username/role 可能 undefined 的问题
- 使用 nullish coalescing operator 处理可能的 undefined 值 - 确保 localStorage 存储的值始终有效 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -54,14 +54,16 @@ export function useAuth() {
|
||||
if (response.session_id) {
|
||||
console.log('[useAuth] Login successful, setting state...');
|
||||
setIsAuthenticated(true);
|
||||
setUsername(response.username);
|
||||
setRole(response.role);
|
||||
const username = response.username ?? 'Unknown';
|
||||
const role = response.role ?? 'user';
|
||||
setUsername(username);
|
||||
setRole(role);
|
||||
// 持久化到 localStorage
|
||||
localStorage.setItem('session_id', response.session_id);
|
||||
localStorage.setItem('username', response.username);
|
||||
localStorage.setItem('username', username);
|
||||
const userInfo: UserInfo = {
|
||||
username: response.username,
|
||||
role: response.role,
|
||||
username,
|
||||
role,
|
||||
};
|
||||
localStorage.setItem('userInfo', JSON.stringify(userInfo));
|
||||
console.log('[useAuth] State updated, userInfo:', userInfo);
|
||||
@@ -85,14 +87,16 @@ export function useAuth() {
|
||||
const loginResponse = await apiClient.login(email, password);
|
||||
if (loginResponse.session_id) {
|
||||
setIsAuthenticated(true);
|
||||
setUsername(loginResponse.username);
|
||||
setRole(loginResponse.role);
|
||||
const loginUsername = loginResponse.username ?? username;
|
||||
const loginRole = loginResponse.role ?? 'user';
|
||||
setUsername(loginUsername);
|
||||
setRole(loginRole);
|
||||
// 持久化到 localStorage
|
||||
localStorage.setItem('session_id', loginResponse.session_id);
|
||||
localStorage.setItem('username', loginResponse.username);
|
||||
localStorage.setItem('username', loginUsername);
|
||||
const userInfo: UserInfo = {
|
||||
username: loginResponse.username,
|
||||
role: loginResponse.role,
|
||||
username: loginUsername,
|
||||
role: loginRole,
|
||||
};
|
||||
localStorage.setItem('userInfo', JSON.stringify(userInfo));
|
||||
return { ...registerResponse, session: loginResponse };
|
||||
|
||||
Reference in New Issue
Block a user