更新登录页面和帮助教程

This commit is contained in:
Eamon
2026-08-07 16:54:21 +08:00
parent 038e66d0cc
commit 4c9953ab57
22 changed files with 1278 additions and 133 deletions

View File

@@ -8,36 +8,39 @@ export default function AuthGuard({ children }: { children: React.ReactNode }) {
useEffect(() => {
const checkAuth = async () => {
const accessToken = localStorage.getItem("auth_token")
const refreshToken = localStorage.getItem("auth_refresh")
try {
const accessToken = localStorage.getItem("auth_token")
const refreshToken = localStorage.getItem("auth_refresh")
// 没 Token,判定无效
if (!accessToken && !refreshToken) {
setIsValid(false)
return
}
if (!accessToken && !refreshToken) {
setIsValid(false)
return
}
// 尝试用现有 AccessToken 获取用户信息
const profileResp = await getProfile()
if (profileResp.success) {
setIsValid(true)
return
}
// AccessToken 无效 尝试用 RefreshToken 刷新
if (refreshToken) {
const newTokens = await refreshAuth()
if (newTokens) {
const profileResp = await getProfile()
if (profileResp.success) {
setIsValid(true)
return
}
}
// 刷新失败或无 RefreshToken,为未登录
localStorage.removeItem("auth_token")
localStorage.removeItem("auth_refresh")
localStorage.removeItem("auth_expires_in")
setIsValid(false)
if (refreshToken) {
const newTokens = await refreshAuth()
if (newTokens) {
setIsValid(true)
return
}
}
localStorage.removeItem("auth_token")
localStorage.removeItem("auth_refresh")
localStorage.removeItem("auth_expires_in")
setIsValid(false)
} catch {
localStorage.removeItem("auth_token")
localStorage.removeItem("auth_refresh")
localStorage.removeItem("auth_expires_in")
setIsValid(false)
}
}
checkAuth()
@@ -50,14 +53,14 @@ export default function AuthGuard({ children }: { children: React.ReactNode }) {
</div>
)
// if (!isValid) {
// return (
// <Navigate
// to={`/login?redirect=${encodeURIComponent(location.pathname)}`}
// replace
// />
// )
// }
if (!isValid) {
return (
<Navigate
to={`/login?redirect=${encodeURIComponent(location.pathname)}`}
replace
/>
)
}
return <>{children}</>
}