// pages/auth/signin.js import { getCsrfToken, signIn } from 'next-auth/react'; import React, { useState } from 'react'; import { useRouter } from 'next/router'; import Layout from '../../components/layout'; import { useSession } from "next-auth/react" export default function SignIn({ csrfToken }) { const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(''); const router = useRouter(); const { data: session } = useSession() //handle callbackUrl const { callbackUrl } = router.query; if (callbackUrl) { if (session) { router.push(callbackUrl); } } const handleSubmit = async (e) => { e.preventDefault(); // Perform client-side validation if needed if (!email || !password) { setError('Всички полета са задължителни'); return; } // Clear any existing errors setError(''); // Attempt to sign in const result = await signIn('credentials', { redirect: false, username: email, password, callbackUrl: '/', }); // Check if there was an error if (result.error) { setError(result.error); } // Redirect to the home page or callbackUrl on success if (result.ok && result.url) { router.push(result.url); } }; return (

Вход

{/*

Sign in with a Social Media Account

*/} {/* Apple Sign-In Button */} {/* */} {/* microsoft */} {/* */}

Влез с локален акаунт

setEmail(e.target.value)} className="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500 sm:text-sm" />
setPassword(e.target.value)} className="mt-1 block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm focus:outline-none focus:ring-blue-500 focus:border-blue-500 sm:text-sm" />
{error &&
{error}
} {/* */}
); } // This gets called on every request export async function getServerSideProps(context) { const csrfToken = await getCsrfToken(context); return { props: { ...(csrfToken ? { csrfToken } : {}), }, }; }