자체 회원가입에는 이런식으로 role를 추가했습니다 그런데 다음과 같이 소셜로그인으로 가입하면 궁금한 점이 있습니다.
<h1>
질문1.</h1>
소셜로그인으로 가입했을시에는 다음과 같이 users에 role를 추가해야 되나요?
맞다면 users에 role : 'user' 추가하고 싶다면 어떻게 해야되나요..
질문2.
pages/api/auth/[...nextauth].js 에서 다음과 같이 코드를 작성했습니다.
```
callbacks: {
//4. jwt 만들 때 실행되는 코드
//user변수는 DB의 유저정보담겨있고 token.user에 뭐 저장하면 jwt에 들어갑니다.
jwt: async ({ token, user }) => {
if (user) {
// JWT에 기입할 정보
token.user = {};
token.user.name = user.name
token.user.email = user.email
token.user.role = 'user'
// 터미널에 표시되는 정보
// 권한 같은것 들도 추가해서 전달할 수 있음
// 토큰에 유저의 role을 추가
}</pre>
<pre>return token;
},
</pre>
<pre>```
<h1>
질문내용 :</h1>
이러면 jwt에만 role이 표시되고 데이터베이스에서 role이 추가되지 않습니다.
이 경우 기존에 작성한 코드는 글을 삭제할때 기존의 회원가입으로 가입한 회원의 role을 확인하여 다음과 같이 조건문을 작성하였는데
질문 1번에서 users에 role을 추가하지 않는다면 if문에 jwt에 담긴 role값을 확인하는 조건문을 추가해야 되나요??
```</pre>
<pre>if (findInfo.author == session.user.email || role.role == 'admin') {
// 작성자의 이메일과 로그인한 유저의 이메일이 같으면 || 로그인한 유저의 role이 admin이면
let result = await db.collection('post').deleteOne({ _id : new ObjectId(req.body) })
return res.status(200).json('삭제완료')
} else {
return res.status(500).json('현재유저와 작성자 불일치')
}</pre>
<pre>```