fix(token): refresh
This commit is contained in:
13
src/proxy.ts
13
src/proxy.ts
@@ -66,8 +66,21 @@ export function proxy(req: NextRequest) {
|
||||
}
|
||||
|
||||
const accessToken = req.cookies.get("accessToken")?.value ?? "";
|
||||
const refreshToken = req.cookies.get("refreshToken")?.value ?? "";
|
||||
|
||||
if (!accessToken || isExpired(accessToken)) {
|
||||
if (refreshToken) {
|
||||
// 尝试刷新 token
|
||||
const next = encodeURIComponent(currentUrl.toString());
|
||||
if (cmsServiceBaseUrl) {
|
||||
// 跳转到 cms-service 的 refresh 接口,由它完成刷新并重定向回来
|
||||
const refreshUrl = `${cmsServiceBaseUrl}/auth/refresh?token=${encodeURIComponent(
|
||||
refreshToken,
|
||||
)}&next=${next}`;
|
||||
return NextResponse.redirect(refreshUrl, 302);
|
||||
}
|
||||
}
|
||||
|
||||
if (!tenantId) {
|
||||
const url = req.nextUrl.clone();
|
||||
url.pathname = "/tenant-required";
|
||||
|
||||
Reference in New Issue
Block a user