2 글 보임 - 1 에서 2 까지 (총 2 중에서)
-
글쓴이글
-
2023년 12월 19일 09:32 #107303
들블참가자import { connectDB } from "@/util/database"; import { MongoDBAdapter } from "@next-auth/mongodb-adapter"; import NextAuth from "next-auth"; import GithubProvider from "next-auth/providers/github"; import NaverProvider from "next-auth/providers/naver"; import CredentialsProvider from "next-auth/providers/credentials"; import bcrypt from 'bcrypt';
export const authOptions = { providers: [ // naver login NaverProvider({ clientId: process.env.NAVER_CLIENT_ID, clientSecret: process.env.NAVER_CLIENT_SECRET, profileUrl: 'https://openapi.naver.com/v1/nid/me',
}), // github login GithubProvider({ clientId: process.env.GITHUB_CLIENT_ID, clientSecret: process.env.GITHUB_CLIENT_SECRET, }),
// jwt 사용자 지정 로그인 방식
// 아이디 비밀번호 입력 방식 로그인 가능 CredentialsProvider({
// 1. 로그인 페이지 & 폼 자동생성해주는 코드 name: "", credentials: { // 로그인 할 때 입력 받을 input 추가 email: { label: "아이디", type: "text", placeholder: '아이디' }, password: { label: "비밀번호", type: "password", placeholder: '비밀번호' }, },
//2. 로그인 요청시 실행되는코드 //직접 DB에서 아이디,비번 비교하고 //아이디,비번 맞으면 return 결과, 틀리면 return null async authorize(credentials) { let db = (await connectDB).db('next'); let user = await db.collection('user_cred').findOne({ name: credentials.email }) if (!user) { console.log('해당 이메일은 없음'); return null } const pwcheck = await bcrypt.compare(credentials.password, user.password); if (!pwcheck) { console.log('비번틀림'); return null } return user }
}) ],
// jwt 사용자 지정 로그인 방식
//3. jwt 만료일설정 session: { strategy: 'jwt', maxAge: 30 * 24 * 60 * 60 // 30일 }, // 4. jwt 만들 때 실행되는 코드 // user 변수는 DB의 유저정보담겨있고 token.user에 뭐 저장하면 jwt에 들어감 callbacks: { jwt: async ({ token, user }) => { if (user) { token.user = {}; token.user.name = user.name token.user.email = user.email } console.log(user); console.log(token) return token },
// 5. 유저 세션이 조회될 때 마다 실행 되는 코드 session: async ({ session, token }) => { session.user = token.user; console.log(session) console.log(token) return session; },
signIn: async (user, account, profile) => { console.log('Naver User Info:', profile); return true; }, }, // jwt 사용자 지정 로그인 방식 끝
secret: 'qwer1234', adapter: MongoDBAdapter(connectDB) }; export default NextAuth(authOptions);
네이버 로그인을 추가 했는데 console로 로그인 한 네이버 유저 이메일,번호,성별 등등을 출력하고싶은데 별명,프로필 이미지 딱 2가지만 나오네요ㅠ 유저 권한이랑 체크 할 건 다 체크 했어요. 구글링 해도 잘 안나와서 질문 드립니다.
2023년 12월 19일 09:43 #107309
codingapple키 마스터signIn 아니면 jwt 함수에서 일반 파라미터들 출력해봅시다 네이버 사이트에서 앱 만들 때 무슨 유저정보 꺼내쓸건지 설정해야할수도요
-
글쓴이글
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
- 답변은 로그인 후 가능합니다.