feat: Implement form-based SSO redirect for more reliable authentication flow

This commit is contained in:
wood chen 2025-02-21 21:19:52 +08:00
parent 21a2a51ba6
commit b9ace034bf

View File

@ -20,6 +20,7 @@ export function UserAuthForm({
const router = useRouter();
const { toast } = useToast();
const searchParams = useSearchParams();
const formRef = React.useRef<HTMLFormElement>(null);
async function signIn() {
try {
@ -65,9 +66,11 @@ export function UserAuthForm({
const data = await response.json();
console.log("收到 SSO URL:", data.sso_url);
// 确保在跳转前重置加载状态
setIsLoading(false);
window.location.href = data.sso_url;
// 使用表单提交方式跳转
if (formRef.current) {
formRef.current.action = data.sso_url;
formRef.current.submit();
}
} catch (error) {
console.error("登录错误:", error);
toast({
@ -84,6 +87,7 @@ export function UserAuthForm({
return (
<div className={cn("grid gap-3", className)} {...props}>
<form ref={formRef} method="get" style={{ display: "none" }} />
<button
type="button"
className={cn(buttonVariants({ variant: "outline" }))}