修复 logo 跳转链接;修复令牌刷新问题
This commit is contained in:
@@ -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})
|
||||
|
||||
Reference in New Issue
Block a user