https://github.com/nextauthjs/next-auth/pull/9871
기존 callback에서는 throw new Error로 처리했지만 CredentialSignin 을 활용하여 Custorm된 Error을 만들어줘야함
import NextAuth, { CredentialsSignin} from 'next-auth';
class CustomError extends CredentialsSignin {
code = 'custom';
}
export const { handlers, auth, signIn, signOut } = NextAuth({
//...
providers:[
Credentials({
authorize: async ({ email, password }) => {
if (!email || !password)
throw new CustomError(
'Please enter your email and password'
);
const user = await db.user.findFirst({
where: {
email,
},
});
if (!user) throw new CustomError('User not found');
const isValid = verifyPassword(
password as string,
user.password!
);
if (!isValid) throw new CustomError('Invalid password');
return user;
},
})
]
})
'FrontEnd > Next.js' 카테고리의 다른 글
[Next.js] useMediaQuery 모바일/데스크탑 구분 훅 (feat. window is not defined) (0) | 2024.09.23 |
---|---|
cloudinary API를 통해 이미지 업로드 해보기 (feat. Next.js) (0) | 2024.09.06 |
form에서 server action 다루기 (0) | 2024.06.15 |
Form에서 두개 이상의 버튼을 다루기 (feat. server action ) (1) | 2024.06.14 |
인가 서버에서 token 받아오기 (OAuth) feat. NextJs (1) | 2024.06.10 |