#nextauth

질문 3
해시태그 없이 키워드만 일치하는 질문은 개수에 포함되지 않아요.

일 년 전 · 손우진 님의 새로운 답변

nextauth 를 이용해 springboot 의 jwt를 받아와서 로그인을 구현중입니다.

안녕하세요. nextauth 를 이용해 로그인 구현중입니다. 흔히 생각하는 소셜 로그인이 아닌 username 과 password를 통해 springboot security 에서 jwt를 반환 받아오려고 합니다. // app/api/auth/[...nextauth]/route.ts CredentialsProvider({ name: 'Credentials', credentials: { username: { label: 'Username', type: 'text', placeholder: '아이디' }, password: { label: 'Password', type: 'password' }, }, async authorize(credentials, req) { const res = await fetch(`${process.env.NEXTAUTH_URL}/auth/login`, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ username: credentials?.username, password: credentials?.password, }), }); const user = await res.json(); console.log(user); if (user) { return user; } else { return null; } }, }), 그런데 위의 코드처럼 코드를 구성했을때 .env.local 파일의 NEXTAUTH_URL 이 등록이 되면 authorize 가 작동하지 않습니다 . 에러 log라도 있으면 어떻게라도 해보겠는데.. 그것도 없습니다. 그래서 NEXTAUTH_URL 를 등록하지 않고 const res = await fetch(`http://localhost:8080/auth`, 바꾸면 이것역시 에러 log 없이 브라우저상에서 Error 라는 문구만 보여줍니다. 이렇게 생각했을때 authorize는 값을 내부에서만 가져올수 있는거 같은데요. 실제로 가상의 const user = {....} 를 만들어서 반환하면 로그인이 아주 잘 됩니다. 하지만 제가 원하는 방법은 아니죠..ㅍ 검색해보면 prisma 가 많이 나오는데.. 그것 또한 시스템상 제가 원하는 방식이 아닙니다. springboot security 에서 jwt를 받아와서 nextauth에 로그인을 할수 있는 방법은 없을까요? custom login 페이지를 만들어서 해야 할거 같은데 방법을 잘 모르겠습니다. 현재 springboot 서버에 cors 설정이 정상적으로 허용된 상태입니다.

개발자

#nextauth

#springboot

#jwt

#nextjs

#typescript

답변 1

댓글 0

조회 1,179

7달 전 · 리드오 님의 새로운 답변

next auth 소셜로그인으로 일반적인 jwt 인증방식 구현하기

안녕하세요 next auth로 소셜로그인을 구현중입니다. 따로 spring boot 서버가 있는 상태이구여. 궁금한점이 있습니다. 1. 소셜로그인 완료 시 account에 들어있는 accessToken과 refreshToken을 아래와 같은 코드로 빼낸 뒤 서버에 보내서 일반적인 jwt방식으로 구현을 하려고 합니다. 하지만 token들이 jwt형식이 아니라 ' . ' 구분없이 하나의 문자열로 나옵니다. jwt토큰 형태로 바꾸는 방법이 따로 있나요? 아니면 이와 같은 방식은 잘못된 방식인건가요?? ``` session: { jwt: true, }, callbacks: { async jwt({ token, account, profile, user }: any) { if (account && user) { token.accessToken = account.access_token; token.refreshToken = account.refresh_token; token.id = profile.id; } return token; }, async session({ session, token, user }: any) { if (session) { session.accessToken = token.accessToken; session.refreshToken = token.refreshToken; session.user.id = token.id; } return session; }, }, ``` 2. 만약 소셜로그인 시 생성된 토큰들을 spring boot 서버에 보내는 방법이 불가능하다면 따로 토큰을 생성해야 하는건가요? 그렇다면 next-auth를 사용하는 이점이 사라지는게 아닐까요??

개발자

#next-auth

#next

답변 2

댓글 0

조회 1,028

일 년 전 · 도연 님의 댓글 업데이트

안녕하세요 NextAuth를 사용해서 구글 로그인을 구현하고 있는 중 어떻게 해결해야 할지 모르겠습니다ㅜㅜ...

아래 블로그를 참고하여 route.ts, AuthContext.tsx를 만들고 siginIn 이벤트는 사용하는 컴포넌트의 버튼 요소에 걸어주었습니다. 하지만 버튼을 누르면 404 페이지가 나오면서 url이 http://localhost:3000/api/auth/error로 뜹니다... .env 파일을 수정하고 NextAuthOptions를 사용해서 NEXTAUTH_URL, NEXTAUTH_SECRET 설정도 해보았고, 아래 코드처럼 스택 오버플로우 사이트를 참고해서 적어보기도 했지만 여전히 같은 에러가 반복됩니다... <button onClick={(e) => { e.preventDefault(); signIn('google', { callbackUrl: '/' }); }}> 구글 </button> 404 에러를 해결할 수 있는 방법이 있을까요... https://velog.io/@uni/NextAuth.js-%EA%B5%AC%EA%B8%80-%EB%A1%9C%EA%B7%B8%EC%9D%B8-Next%EB%B2%84%EC%A0%84-13.4.2

개발자

#next.js-13

#nextauth

답변 2

댓글 6

조회 684

Type error: Property 'session' does not exist on type '{}' (nextjs auth google 연동)

next-auth 라이브러리를 사용해서 구글 로그인을 구현하고있는데 에러가 발생합니다. https://dantechblog.gatsbyjs.io/posts/next-auth/ 이 글을 따라서 연동중이고 import type { AppProps } from "next/app"; import {SessionProvider} from 'next-auth/react'; ​ const App = ({Component, pageProps}:AppProps) => { return ( <SessionProvider session={pageProps.session}> <Component {...pageProps} /> </SessionProvider> ); } ​ export default App; 위와 같이 작성한 코드에서 pageProps가 session 타입을 가지고 있지 않다고 에러가 나옵니다.. (Type error: Property 'session' does not exist on type '{}' ) 혹시 next-auth로 구글 연동하신 분들 같은 이슈 해결해본적 있으신가요??

개발자

답변 1

댓글 0

추천해요 3

조회 316

일 년 전 · 익명 님의 답변 업데이트

[next-auth] 서버사이드에서 session 생성 및 수정 하는 방법

(next.js 13버전 app route 기준) 안녕하세요. 이번 프로젝트에서 next-auth를 사용하여 인증 구현을 진행 하고 있는데요. 일반적인 사용법들은 구현을 하였습니다. - 클라이언트에서 signIn, signOut, update 등 session 제어 - 서버사이드에서 getServerSession를 사용하여 session 정보 확인 하지만, 아래의 두 가지를 구현하는 것에 있어 어려움을 겪고 있습니다. 1. 서버사이드에서 사이트 첫 접속 시(새로고침 시) session이 없다면 세션 자동 생성 2. 서버사이드 전용 axios 유틸 파일에서 session의 토큰이 만료되었다면, refresh token(쿠키)으로 새로운 access token을 가져와서 기존 session에 업데이트 후 재요청 next-auth를 많이 사용하는 것 같고, 서버와 클라이언트에서 적절히 사용하실 것 같은데 아무리 찾아봐도 위에 대한 해결책은 없는 것 같습니다. 1번 사항과 같이 서버 사이드에서 session을 즉시 만드는 경우는 저희 프로젝트에 좀 특수한 경우인 것 같고, 2번의 경우는 일반적인 토큰 갱신 방식인 것 같은데 토큰 갱신은 서버사이드에서 어떻게 할 수 있을까요? 해결 방안이 있거나, 이러한 상황에서는 어쩔 수 없이 access token을 쿠키로만 관리해야 하는 것인지 의견 부탁 드립니다. 서버와 클라이언트에서 access token의 만료 갱신 처리를 위해 access token을 보통 어디에 관리하시나요? cookie만이 방법일까요?

개발자

#next.js

#next-auth

#server-component

답변 1

댓글 0

조회 1,464

일 년 전 · 오두용 님의 답변 업데이트

next auth를 사용중인데 서버 컴포넌트에서 useSession을 사용하는 방법이 있을까요?

안녕하세요 next 13버전으로 프론트를 구현하고있습니다. 로그인은 next auth로 하고 있고 12버전에서 13으로 올리면서 useSession을 사용하는 부분에 에러가 발생합니다. Error: React Context is unavailable in Server Components next.js 13버전은 서버컴포넌트가 기본으로 알고 있어서 일반적인 방법으로는 useSession을 사용하지 못하는 것 같습니다. 혹시 서버 컴포넌트에서 next auth의 session값을 불러올 수 있는 방법이 있을까요?

개발자

#next.js

#next-auth

#server-component

답변 2

댓글 2

추천해요 1

조회 1,769

[next-auth] Error: This action with HTTP GET is not supported by NextAuth.js

안녕하세요 next-auth를 사용해서 로그인, 회원가입을 구현하고 있습니다. 코드는 다 작성했는데 테스트하려고하니 Error: This action with HTTP GET is not supported by NextAuth.js 에러가 발생해서 진행이 안되네요.. 혹시 같은에러 해결해보신 분 있으실까요?

개발자

#next.js

#next-auth

답변 1

댓글 1

추천해요 1

조회 630

일 년 전 · 김태우 님의 새로운 댓글

next.js 14 nextAuth v4 JWT_SESSION_ERROR 도와주세요..

getServerSession 부분에서 JWEDecryprionFailed 에러가 발생하고 있습니다 구글링 결과 authOptions에 secret을 추가하면 된다고 해서 추가해도 계속 발생하네요.. 클라이언트나 서버 컴포넌트에서는 seesion이 가져와 지는데 api 라우트 부분에서만 Session Handling이 안되네요 https://next-auth.js.org/errors#jwt_session_error 콘솔에 출력된 공식 문서를 봐도 해결이 안되네요 도움을 주실분 계신가요..??

개발자

#next.js

#nextauth

#jwedecryprionfailed

답변 1

댓글 3

조회 457

일 년 전 · 익명 님의 질문

next-auth에서 adapter와 관련해서 궁금한점이 몇개 있습니다.

안녕하세요. 새로운 프로젝트 진행 중에 처음으로 next-auth를 사용해서 소셜로그인을 해보려고 하는데 이해가 안되는 부분이 몇가지 있어서 질문 드립니다... 1. next-auth가 서버리스를 권장하는 next의 기능인 것은 알겠습니다. 그럼에도 프로젝트를 진행함에 있어서 다른 기능을 추가할 때 서버를 사용해야 할 것 같습니다. 그렇다면 클라이언트에서 아는 내용을 서버도 알아야만 하는데(유저 정보, 어떤 유저가 요청을 보냈는지) adpater를 사용해서 DB에 직접 접근하지 않는다면 서버에게 어떻게 알게해야 하나요?? 2. 만약 adapter로 DB에 접근하게된다면, DB에 직접 접근해 유저정보를 넣을 수 있게 되는건가요? 3. adapter를 사용하지 않는다면 jwt로 기본적으로 동작하고 이를 권장하는다고 하는데 그렇다면 만약 adapter를 사용한다면 따로 jwt를 생성해서 다뤄야할까요? 4. adapter를 사용하지 않고 next-auth 소셜로그인을 한다면 jwt refresh와 같은 것들은 전혀 생각하지 않아도 되는걸까요??

개발자

#next-auth

#next.js

답변 0

댓글 0

조회 91

일 년 전 · 익명 님의 새로운 댓글

nextJS 에서 안전하게 token 처리하기

nextjs에서 nextAuth 쓰지않고 안전하게 token 처리하는 완벽한 예시가 있는지 알고싶습니다. 사이드 프로젝트중에 여러 시도를 해봤는데 정답을 못찾겠습니다. 일단 axios 인터셉트로 ssr이나 csr이나 모두 토큰을 헤더에 담아서 보내는 것을 목표로 하고 있습니다. 1. 상태관리 라이브러리를 사용한다. 당연히 ssr 환경에서는 불가하니 탈락 2. 그냥 쿠키를 사용한다 보안 문제가 있으니 탈락. 3. http only 쿠키를 사용한다. csr 환경에서 접근할 수 없으니 탈락. 대안으로 생각해본 방법들은 1. 모든 api를 server action을 랩핑해서 미들웨어처럼 사용하고 http only 쿠키 이용하기 2. 쿠키와 상태관리 모두 값을 넣어두고 두가지 다 관리하면서 서버와 클라이언트 컴포넌트에서 각각 제어하기 하지만 두가지 방법은 너무 번거롭고 버그 양산일 것 같습니다. 많은 분들께 여쭤봤을 때는 그냥 쿠키를 사용하고 보안은 어느정도 포기한다는데 다른 방법이 있을까요?

개발자

#next.js

#react

#jwt

답변 1

댓글 6

추천해요 1

조회 995

일 년 전 · 익명 님의 질문

nextauth 많이들 쓰시나요?

토이프로젝트 하는중에 nextauth 를 사용하고있는데 제가 초보자라 오류가 많이나네요ㅋㅋㅋ 저는 공식문서 만으로는 잘 안 되는것 같은데 .. 점점 nextjs 정 떨어지는중 ㅠㅠ 다들 nextAuth 사용하실때 공식문서 만 보시나요??

개발자

#next-auth

답변 0

댓글 0

조회 147

6달 전 · 백승훈 님의 새로운 답변

Next.js 사용 시 SyntaxError: Expected property name or '}' in JSON at position 61의 에러위치가 어딘지 어떻게 알수있나요?

"next-auth": "^5.0.0-beta.20" 사용 중인데 해당 에러를 검색해보니 JSON 형식의 문자열이 아니기 때문에 에러가 발생한 것이라고 하던데 에러가 일어난 코드의 위치를 정확히 말을 안해주니 어디서 어떻게 고쳐야할지 도통 모르겠습니다....ㅠㅠ 해당 에러를 야기하는 것으로 의심되는 파일의 코드와 에러메시지를 띄운 터미널을 캡처하여 첨부드립니다... 혹시 어디서 문제인지 힌트라도 주신다면 열심히 찾아 해결해보겠습니다!!!

개발자

#next-auth

#next.js

답변 1

댓글 0

조회 33

구글 로그인 redirect_url_mismatch

구글 로그인을 구현하고 있는데 에러가 발생합니다. nextjs 12.3 next-auth 4.16.4 버전으로 개발하고 있습니다. next-auth provider google을 사용해서 로컬에서는 로그인 테스트에 성공했는데, dev서버에 배포하고 로그인 시도하면 사진과 같이 redirect_url_mismatch 에러가 발생합니다. 구글 클라우드 플랫폼에 dev서버용 redirect_url도 추가했습니다. 어떻게 검색해야 할지 몰라 질문 남깁니다.

개발자

답변 1

댓글 0

추천해요 2

조회 246

_app.tsx에서 session을 접근하고 싶어요.

next-auth.js를 사용 중이고 next.js 버전은 v13이에요. 새로이 가입한 유저일 경우 특정 페이지로 넘어가게 할려고 하는데 이에 대한 코드가 있을 적절한 위치가 _app.tsx인데 pageProps로 받은 session은 undefined이기도 해서 다른 방식으로 접근해야 하는지 할 수 있다면 어떤 방법인지 궁금합니다.

개발자

#next.js

답변 2

댓글 0

조회 529

일 년 전 · 프레드윰 님의 새로운 답변

NextAuth에서 구글 로그인 관련 질문입니다

안녕하세요, NextAuth 구글 아이디 secret다 맞는데, 구글 로그인을 하려고 하면 계속 431에러가 납니다. 계속 씨름해봐도 안되네요. 도움 부탁드립니다ㅠㅠ 감사합니다

개발자

#next.js

답변 1

댓글 0

조회 73

next-auth google 로그인 500 server error

next-auth를 사용해서 google 로그인 구현중인데 Signup 버튼을 클릭하면 500 server error가 발생합니다. 로컬에서는 잘 됐는데, vercel로 배포해서 개발도메인으로 연동하려고 하니까 에러가 발생하네요.. ㅠ 혹시 해결해보신 분 있으실까요?

개발자

#react

#nextjs

#google

#login

답변 1

댓글 1

추천해요 2

조회 995

2년 전 · 익명 님의 질문

flutter에서 웹뷰 띄우기 (세션 유지)

안녕하세요 현재 flutter로 앱 개발을 하고 있고, 일부 기능들을 웹뷰를 띄워서 개발하려고 하는데 사용자 인증, 세션 유지에 관해 질문이 있습니다. 우선 flutter에서 웹으로 access token을 보내서 웹에서도 api call을 할 수 있도록 개발해놓았는데, 세션 유지는 어떻게 하면 좋을 지 고민입니다. (next auth를 사용해서 ..?)

개발자

#flutter

#webview

#auth

#next-auth

#next.js

답변 0

댓글 0

조회 516