feat: secure KYC storage, Google OAuth, terms gating
This commit is contained in:
@@ -5,6 +5,7 @@ import { signIn } from "next-auth/react";
|
||||
import { useRouter, useSearchParams } from "next/navigation";
|
||||
import Link from "next/link";
|
||||
import Image from "next/image";
|
||||
import { GoogleSignInButton } from "@/components/shared/google-sign-in-button";
|
||||
|
||||
function safeInternalPath(raw: string | null): string {
|
||||
if (!raw || !raw.startsWith("/") || raw.startsWith("//")) return "/";
|
||||
@@ -84,6 +85,14 @@ function LoginForm() {
|
||||
</div>
|
||||
)}
|
||||
|
||||
<GoogleSignInButton callbackUrl={safeInternalPath(searchParams.get("callbackUrl"))} />
|
||||
|
||||
<div className="my-4 flex items-center gap-3 text-xs text-neutral-400">
|
||||
<span className="h-px flex-1 bg-neutral-200" />
|
||||
<span>atau</span>
|
||||
<span className="h-px flex-1 bg-neutral-200" />
|
||||
</div>
|
||||
|
||||
<form onSubmit={handleSubmit} className="space-y-4">
|
||||
<div>
|
||||
<label htmlFor="email" className="mb-1.5 block text-sm font-semibold text-neutral-700">
|
||||
|
||||
Reference in New Issue
Block a user