일기/개발일기

[241002-3] Next.js signIn의 redirect

표자 2024. 10. 2. 15:36

redirect 옵션

  • redirect: true: 인증이 성공하면 자동으로 지정된 URL로 리다이렉트합니다. 이 경우 **callbackUrl**을 지정해야 합니다. 인증이 성공하면 사용자가 callbackUrl로 이동합니다.
  • redirect: false: 인증이 성공해도 자동으로 리다이렉트하지 않습니다. 대신, 응답 객체를 통해 인증 결과를 처리할 수 있습니다. 이 경우 callbackUrl을 지정할 필요가 없습니다.

callbackUrl 옵션

  • callbackUrl: redirect: true일 때 사용됩니다. 인증이 성공하면 사용자가 이동할 URL을 지정합니다. 예를 들어, /dashboard로 설정하면 인증 성공 시 사용자가 대시보드 페이지로 이동합니다.
const response = await signIn('AuthCheck', {
    id,
    password,
    redirect: true,
    callbackUrl: '/dashboard',
});
// 인증 성공 시 자동으로 '/dashboard'로 리다이렉트
// 중요한건 뒤에 뭐가 있든 실행을 안한다!!!!
const response = await signIn('AuthCheck', {
    id,
    password,
    redirect: false,
});

if (response.ok) {
    alert('로그인 성공');
    router.push('/dashboard'); // 수동으로 '/dashboard'로 이동
} else {
    alert('로그인 실패');
    console.error(response.error);
}

redirect: false를 사용하면 인증 성공 후 원하는 로직을 추가로 실행할 수 있습니다. 예를 들어, 성공 메시지를 표시한 후 특정 페이지로 이동하는 등의 작업을 할 수 있습니다.

 

결론

redirect: true를 하면 callbackUrl로 이동하고 뒤에 뭐가 있든 실행을 안해버린다는 것!

나는 그것도 모르고 alert을 하고 있었다....

728x90