개발 이야기/개발 및 서비스
next-auth CredentialsProvider 에 추가 정보를 session.user에 추가하기
가온아
2022. 10. 27. 18:37
[...nextaut].js 에 아래와 유사한 코드가 있을 겁니다. callback 함수들 중 jwt, session을 이용해 추가 정보를 설정합니다.
하단의 원본 링크도 같이 읽어보세요. 정리해서 올릴 내용은 수두룩한데 (이 나이를 먹고도.. ) 마음만 급해서 잘 안되네요. 예전 정리했던 짧은 샘플 코드 하나라도 올려봅니다.
async authorize(credentials, req) {
.
.
.
return {email: data.email, myname:'test'} // 리턴할 때 myname에 임의의 정보 추가
.
.
.
},
callbacks: {
async jwt({token, user}){
user && (token.user = user) // authorize에 리턴했던 값이 user 정보에 있면 token에 추가.
return Promise.resolve(token);
},
async session({session, token}){
// token에 포함된 user 정보를 session.user에도 추가
// 이후 client side의 session.user에서 token.user 정보 확인 가능.
session.user = token.user
if(session.user != null && token.hasAcceptedTerms != null){
session.user.hasAcceptedTerms = token?.hasAcceptedTerms;
}
return Promise.resolve(session);
}
}
(* 참고 원문 링크 : https://next-auth.js.org/configuration/callbacks)
반응형