• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 Next.js 게시판 파트2 회원기능만들기 : 소셜로그인 권한 추가 질문입니다.

파트2 회원기능만들기 : 소셜로그인 권한 추가 질문입니다.

  • 이 주제에는 4개 답변, 2명 참여가 있으며 limhada2 년, 1 월 전에 전에 마지막으로 업데이트했습니다.
5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 글쓴이
  • #86359

    limhada
    참가자
    스크린샷 2023-06-09 오후 1.00.58
    자체 회원가입에는 이런식으로  role를 추가했습니다 그런데 다음과 같이 소셜로그인으로 가입하면 궁금한 점이 있습니다.
    
    

    <h1>스크린샷 2023-06-09 오후 1.11.11
    질문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>```
     
     
     
     
     
     
    #86381

    limhada
    참가자
    글 수정을 어떻게 하는지 몰라서 댓글로 추가 부분 작성합니다!
    질문 1에서 소셜로그인시 자동으로 생성되는 users에 role을 추가하는 방법은 찾았습니다.
      스크린샷 2023-06-09 오후 4.00.02
    
    추가질문 입니다!
    이렇게 코드를 작성해서 해결했는데 올바른 방법일까요?
    그리고 jwt와 데이터베이스에 role을 이중으로 추가하는 것 같은데 두군데 다 추가해야될까요 아니면 데이터베이스나 jwt둘 중에 한군데만 추가해도 될까요??
    질문이 많아서 죄송합니다...
    * next.js 강의 다 듣고 코딩애플 웹개발 프리패스도 수강할 예정이니 조금만 양해 부탁드립니다!
     
    #86382

    limhada
    참가자
    스크린샷 2023-06-09 오후 4.14.07
    
    로그인 버튼 클릭시 소셜로그인 or 자체로그인 하는 이 창?의 디자인은 어떻게 수정할 수 없나요?...
    #86415

    codingapple
    키 마스터
    세션방식쓸거면 DB에 있던거 updateOne으로 회원정보 수정해주면 되고 JWT쓰려면 JWT만 수정하면 됩니다
    커스텀 로그인페이지는 https://www.youtube.com/watch?v=hADeo48SATU 이런거 참고합시다
    #86424

    limhada
    참가자

    <h1>감사합니다!</h1>

5 글 보임 - 1 에서 5 까지 (총 5 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠