修复 logo 跳转链接;修复令牌刷新问题

This commit is contained in:
2025-04-30 18:22:04 +08:00
parent 78f60c94e6
commit e910dc8f61
4 changed files with 26 additions and 24 deletions

View File

@@ -73,7 +73,7 @@ export default function Provider(props: ProviderProps) {
<Wrap className="h-20 max-md:h-16 flex justify-between">
<div className="flex justify-between gap-8">
{/* logo */}
<Link href="/public" className={`flex items-center`}>
<Link href="/" className={`flex items-center`}>
<Image src={logo} alt={`logo`} height={48}/>
</Link>

View File

@@ -60,7 +60,6 @@ export default function ResourcesPage(props: ResourcesPageProps) {
})
if (res.success) {
console.log(res.data)
setData(res.data)
setStatus('done')
}

View File

@@ -13,29 +13,31 @@ export async function middleware(request: NextRequest) {
// 记录请求页面
request.headers.set('x-pathname', request.nextUrl.pathname)
// 如果没有访问令牌但有刷新令牌,尝试刷新访问令牌
// 刷新访问令牌
try {
const accessToken = request.cookies.get('auth_token')
const refreshToken = request.cookies.get('auth_refresh')
if (!accessToken && !!refreshToken) {
console.log('💡 refresh token')
const token = await refreshAuth()
request.cookies.set('auth_token', token.access_token)
request.cookies.set('auth_refresh', token.refresh_token)
}
}
catch (e) {
console.log('❌ 刷新访问令牌失败', e)
}
// 没有访问令牌不允许访问 admin 页面
const match = [
RegExp(`^/admin.*`),
].some(item => item.test(request.nextUrl.pathname))
console.log('🔧 match', match, request.nextUrl.pathname)
if (match) {
try {
const accessToken = request.cookies.get('auth_token')
const refreshToken = request.cookies.get('auth_refresh')
console.log('🔧 token', !accessToken && !!refreshToken, !!accessToken, !!refreshToken)
if (!accessToken && !!refreshToken) {
console.log('💡 refresh token')
const token = await refreshAuth()
request.cookies.set('auth_token', token.access_token)
request.cookies.set('auth_refresh', token.refresh_token)
}
}
catch (error) {
console.log(error)
console.log('redirect!!!!!!!!!')
return NextResponse.redirect(`${request.nextUrl.origin}/login?redirect=${request.nextUrl.pathname}`)
}
const accessToken = request.cookies.get('auth_token')
if (match && !accessToken) {
console.log('redirect!!!!!!!!!')
return NextResponse.redirect(`${request.nextUrl.origin}/login?redirect=${request.nextUrl.pathname}`)
}
return NextResponse.next({request})