강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

심현석님의 프로필 이미지
심현석

작성한 질문수

Next + React Query로 SNS 서비스 만들기

로그아웃,로그인 실제로 하기

middleware 관련 질문입니다

작성

·

115

0

해당 코드를 수정했던 강의가 어디였는지 기억이 안나 여기에 글 남깁니다.

아래는 auth.ts의 코드이고 callbacks 부분을 작성하셨다가 나중에 없애는 걸로 수정하셨는데 이 코드의 역할을 middleware에서 대신한다고 생각하면 될까요 ?

export async function middleware() {
    const session = await auth();
    if (!session) {
        return NextResponse.redirect('http://localhost:3000/i/flow/login');
    }
}
    // callbacks: {
    //     async authorized({ request, auth }) {
    //         if (!auth) {
    //             return NextResponse.redirect('http://localhost:3000/i/flow/login');
    //         }
    //         return true;
    //     },
    // },

답변 2

0

심현석님의 프로필 이미지
심현석
질문자

궁금한게 하나 더 있습니다

 

아래 로직은 로그인 모달의 onSubmit 함수인데 원래라면 result.code === "no_user" 인 경우와 result.code === "wrong_password" 인 경우에도 아래 router.replcae("/home") 이 작동되야 하는거 아닌가요 ? 이 경우 result객체 내부에 error에 값이 있어서 replace 함수가 작동하지 않는건가요 ?

 

const onSubmit: FormEventHandler<HTMLFormElement> = async (e) => {
        e.preventDefault();
        setMessage('');
        try {
            const result = await signIn('credentials', {
                username: id,
                password,
                redirect: false,
            });
            console.log(result);
            if (result?.code === 'no_user') {
                setMessage('가입하지 않은 유저입니다.');
            } else if (result?.code === 'wrong_password') {
                setMessage('비밀번호가 틀렸습니다.');
            }
            router.replace('/home');
        } catch (err) {
            console.error(err);
        }
    };
제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

음 else 문으로 감싸주는 게 맞는 것 같습니다. 감사합니다.

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

이번에 next15로 업뎃하면서 저 부분을 제거했습니다. 이제 미들웨어에서 처리하는 것으로 충분합니다.

심현석님의 프로필 이미지
심현석

작성한 질문수

질문하기