Login:Src: fix redirect

This commit is contained in:
Darya Umrikhina 2024-08-20 01:22:48 +04:00
parent 3447a487ab
commit fe32a723e6
2 changed files with 21 additions and 17 deletions

View File

@ -50,7 +50,6 @@ function ConfirmRoute(props: ConfirmRouteProps) {
children,
confirmLinkResult,
confirmLinkParams,
confirmType,
} = props;
const [stateData, setStateData] = useState<TConfirmRouteContext | undefined>(
@ -116,11 +115,6 @@ function ConfirmRoute(props: ConfirmRouteProps) {
}
}
if (!confirmType && confirmLinkParams.type)
window.location.replace(
`/confirm/${confirmLinkParams.type}?${searchParams.toString()}`,
);
return (
<ConfirmRouteContext.Provider
value={{

View File

@ -49,21 +49,31 @@ export function middleware(request: NextRequest) {
}
if (request.nextUrl.pathname.includes("confirm")) {
const queryType = request.nextUrl.searchParams.get("type");
const searchParams = new URLSearchParams(request.nextUrl.searchParams);
const queryType = searchParams.get("type") ?? "";
const posSeparator = request.nextUrl.pathname.lastIndexOf("/");
const type = !!posSeparator
? request.nextUrl.pathname?.slice(posSeparator + 1)
: "";
requestHeaders.set("x-confirm-type", type);
requestHeaders.set(
"x-confirm-query",
request.nextUrl.searchParams.toString(),
);
: queryType;
return NextResponse.rewrite(
`${request.nextUrl.origin}/login/confirm/${queryType}${request.nextUrl.search}`,
{ headers: requestHeaders },
let queryString: string;
if (queryType) {
searchParams.set("type", type);
queryString = searchParams.toString();
} else {
queryString = `type=${type}&${searchParams.toString()}`;
}
requestHeaders.set("x-confirm-type", type);
requestHeaders.set("x-confirm-query", searchParams.toString());
const confirmUrl = `${request.nextUrl.origin}/login/confirm/${type}?${queryString}`;
if (request.nextUrl.toString() == confirmUrl) {
return NextResponse.rewrite(confirmUrl, { headers: requestHeaders });
}
return NextResponse.redirect(
`${request.nextUrl.origin}/confirm/${type}?${queryString}`,
);
}