修复 logo 跳转链接;修复令牌刷新问题
This commit is contained in:
@@ -11,17 +11,18 @@
|
|||||||
- 提取后刷新提取页套餐可用余量
|
- 提取后刷新提取页套餐可用余量
|
||||||
- 白名单复用表格组件
|
- 白名单复用表格组件
|
||||||
- 首次登录弹窗:需要设置初始密码,展示 实名->购买->提取 的流程介绍
|
- 首次登录弹窗:需要设置初始密码,展示 实名->购买->提取 的流程介绍
|
||||||
- 提取页表单性能优化,树组件性能优化
|
- 丰富账单页表格内容与样式
|
||||||
- 检查页面,为后端请求标记 wait 实现防抖机制
|
- 检查页面,为后端请求标记 wait 实现防抖机制
|
||||||
- 页面切换动效
|
- 页面切换动效
|
||||||
- 后台页面:
|
- 后台页面:
|
||||||
- 总览
|
- 总览
|
||||||
- 提取记录
|
- 提取记录
|
||||||
- 使用记录
|
- 使用记录
|
||||||
- 检查页面请求异常处理
|
|
||||||
- 实现完整的客户端 ip 有效性检查
|
|
||||||
|
|
||||||
### 长期
|
### 长期
|
||||||
|
|
||||||
- 检查扩大服务端组件边界
|
- 检查扩大服务端组件边界
|
||||||
- 检查 Card 替换 section 或 div
|
- 检查 Card 替换 section 或 div
|
||||||
|
- 检查页面请求异常处理
|
||||||
|
- 实现完整的客户端 ip 有效性检查
|
||||||
|
- 提取页表单性能优化,树组件性能优化
|
||||||
|
|||||||
@@ -73,7 +73,7 @@ export default function Provider(props: ProviderProps) {
|
|||||||
<Wrap className="h-20 max-md:h-16 flex justify-between">
|
<Wrap className="h-20 max-md:h-16 flex justify-between">
|
||||||
<div className="flex justify-between gap-8">
|
<div className="flex justify-between gap-8">
|
||||||
{/* logo */}
|
{/* logo */}
|
||||||
<Link href="/public" className={`flex items-center`}>
|
<Link href="/" className={`flex items-center`}>
|
||||||
<Image src={logo} alt={`logo`} height={48}/>
|
<Image src={logo} alt={`logo`} height={48}/>
|
||||||
</Link>
|
</Link>
|
||||||
|
|
||||||
|
|||||||
@@ -60,7 +60,6 @@ export default function ResourcesPage(props: ResourcesPageProps) {
|
|||||||
})
|
})
|
||||||
|
|
||||||
if (res.success) {
|
if (res.success) {
|
||||||
console.log(res.data)
|
|
||||||
setData(res.data)
|
setData(res.data)
|
||||||
setStatus('done')
|
setStatus('done')
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,29 +13,31 @@ export async function middleware(request: NextRequest) {
|
|||||||
// 记录请求页面
|
// 记录请求页面
|
||||||
request.headers.set('x-pathname', request.nextUrl.pathname)
|
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 = [
|
const match = [
|
||||||
RegExp(`^/admin.*`),
|
RegExp(`^/admin.*`),
|
||||||
].some(item => item.test(request.nextUrl.pathname))
|
].some(item => item.test(request.nextUrl.pathname))
|
||||||
|
|
||||||
console.log('🔧 match', match, request.nextUrl.pathname)
|
const accessToken = request.cookies.get('auth_token')
|
||||||
if (match) {
|
|
||||||
try {
|
if (match && !accessToken) {
|
||||||
const accessToken = request.cookies.get('auth_token')
|
console.log('redirect!!!!!!!!!')
|
||||||
const refreshToken = request.cookies.get('auth_refresh')
|
return NextResponse.redirect(`${request.nextUrl.origin}/login?redirect=${request.nextUrl.pathname}`)
|
||||||
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}`)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return NextResponse.next({request})
|
return NextResponse.next({request})
|
||||||
|
|||||||
Reference in New Issue
Block a user