* 尝试刷新 token
(refreshToken: string)
| 7 | * 尝试刷新 token |
| 8 | */ |
| 9 | async function refreshAccessToken(refreshToken: string): Promise<{ |
| 10 | access_token: string; |
| 11 | refresh_token: string; |
| 12 | expires_in: number; |
| 13 | } | null> { |
| 14 | try { |
| 15 | const response = await fetch(`${API_BASE_URL}/api/auth/refresh`, { |
| 16 | method: 'POST', |
| 17 | headers: { |
| 18 | 'Content-Type': 'application/json', |
| 19 | }, |
| 20 | body: JSON.stringify({ refresh_token: refreshToken }), |
| 21 | }); |
| 22 | |
| 23 | if (!response.ok) { |
| 24 | return null; |
| 25 | } |
| 26 | |
| 27 | return await response.json(); |
| 28 | } catch (error) { |
| 29 | console.error('Token refresh failed in middleware:', error); |
| 30 | return null; |
| 31 | } |
| 32 | } |
| 33 | |
| 34 | export async function middleware(request: NextRequest) { |
| 35 | const { pathname } = request.nextUrl; |