51 lines
1.3 KiB
TypeScript
51 lines
1.3 KiB
TypeScript
"use client";
|
|
|
|
import { signIn } from "next-auth/react";
|
|
import { useRouter } from "next/navigation";
|
|
import { useEffect } from "react";
|
|
|
|
interface SignInFormProps {
|
|
callbackUrl?: string;
|
|
}
|
|
|
|
export function SignInForm({ callbackUrl }: SignInFormProps) {
|
|
const router = useRouter();
|
|
|
|
useEffect(() => {
|
|
// Clear any existing session data
|
|
localStorage.clear();
|
|
sessionStorage.clear();
|
|
}, []);
|
|
|
|
const handleSignIn = async () => {
|
|
try {
|
|
// Clear any existing session data before signing in
|
|
localStorage.clear();
|
|
sessionStorage.clear();
|
|
|
|
const result = await signIn("keycloak", {
|
|
callbackUrl: callbackUrl || "/",
|
|
redirect: true
|
|
});
|
|
|
|
if (result?.error) {
|
|
console.error('Sign in error:', result.error);
|
|
}
|
|
} catch (error) {
|
|
console.error('Sign in error:', error);
|
|
}
|
|
};
|
|
|
|
return (
|
|
<div className="text-center">
|
|
<h1 className="text-4xl font-bold text-white mb-4">Bienvenue sur Enkun</h1>
|
|
<p className="text-white/80 mb-8">Connectez-vous pour accéder à votre espace</p>
|
|
<button
|
|
onClick={handleSignIn}
|
|
className="px-8 py-3 bg-[#0F172A] text-white rounded hover:bg-[#1E293B] transition-colors"
|
|
>
|
|
Commit
|
|
</button>
|
|
</div>
|
|
);
|
|
}
|