한 달 전 · 박정후 님의 새로운 답변
Oauth2(ios,android)할 때 스프링부트에서 할일
웹으로 구현했을때는 리다이렉트 url등으로 백단에서 인증 받아서 진행 했었는데 네이티브 앱에서의 Oauth2 Docs를 보고있는데 앱단에서 모든 처리를 하는 걸로 보여서요 그럼 그 이후에 그 사람의 프로필정보나 아이디만 보내면 백엔드에서 그걸로 로그인이나 회원가입이 되는게 맞나요? 그렇게 되면 로그인이나 회원가입 api url만 알고있으면 postman으로 아무 닉네임이나 보내면 회원가입이나 로그인이 될 것 같은데 보통 어떤 방식으로 하는지 알고싶습니다.
개발자
#oauth
#네이티브앱
답변 1
댓글 0
조회 41
한 달 전 · 포크코딩 님의 답변 업데이트
회사 3달안에 회사 홈페이지 제작
신입 기준으로 작성되었습니다. 개발자는 혼자인 상태입니다. 페이지 메인 서브 합치면 50~60개 외부 데이터 180개 db,api 손수 제작, 로그인, 회원가입(OAuth포함), 블로그 게시판, 상담사와 채팅 기능, 반응형, SEO, 도메인연결 등을 3달 안에 하라는 소리를 들었습니다. 달로보면 큰데 12, 1, 2 제가 실제 근무한 주는 10주 정도 됩니다 쉬는 날도 있고 했어 가지고요. 하지만 현재도 퇴근 후 + 주말에도 코드 공부 및 작성하면서 프로젝트를 진행 중인데 계속해서 윗선에서는 외주는 몇주 + 이 금액이면 된다고 하더라 넌 왜 느리냐 어쩌구, 3달인데 페이지 제작이 안되면 얼마나 걸리는거냐, 챗봇 써라 챗봇써도 못만드냐? 이런 소리를 듣는 중 입니다. 제가 50일 정도 제작을 했던 거는 면접 볼 때 포폴용으로 내려고 만든 프로젝트 급 시간인데.. 이것도 부족한 부분이 많았는데 이 양을 50일 안에 하려니까 미치겠습니다. 혹시 신입이나 경력자 분들이 페이지를 제작한다면 기간은 얼마정도 잡는지 대략적으로도 좋으니.. 알려주시면 감사하겠습니다 ㅠㅠ
개발자
#웹개발
#프론트엔드
#백엔드
#취준
#이직
답변 1
댓글 0
조회 59
6달 전 · 익명 님의 질문
OAuth2 + jwt 환경 부하 테스트 방법에 대한 질문..
최근 성능 테스트의 중요성에 대해 알게 되어서 목표 성능치를 두고 부하테스트를 진행해보려는 계획에 있습니다! 테스트 툴로는 nGrinder를 사용할 생각인데요, 문제는 제 서버가 이메일 로그인을 지원하지 않고 oauth2와 jwt를 활용한 인증/인가 방식을 사용하는데 부하테스트 시 가상 유저에게 어떻게 accessToken을 발급해주어야 하는지에 대한 궁금증이 생겼습니다..! 제가 생각해본 방식들은 다음과 같습니다. 1. 실제 유저에 대한 accessToken을 하나 발급해두고 이를 고정값으로 사용한다. - 이 방식은 제일 편하지만 사실상 한명의 유저에 대한 시나리오만 테스트할 수 밖에 없고, 같은 유저에 대한 각종 캐싱된 데이터들로 인해 실제 상황과는 동떨어진 작업이 될 것 같아 채택하지 않았습니다. 2. FakeAuthServer와 같은 가상의 OAuth 서버를 만들어 로그인을 시도한다. - 구현하기는 어려워보이지만 그나마 가장 실제 서비스와 동일한 형태입니다. 하지만, 제가 테스트하려는 시나리오는 여러 요청에 대한 순차적인 테스트가 아닌 하나의 API가 얼마나 많은 부하를 견딜 수 있는지 보기 위한 테스트라서 굳이 로그인 과정을 테스트에 포함시킬 필요는 없어보입니다.. - 사실 하나의 API에 대한 테스트만 진행해도 괜찮은지 몰라서 이 방법을 버리지 못하고 있습니다 3. nGrinder의 테스트 스크립트에서 @BeforeThread에 jwt를 발급받는 로직을 작성해서 테스트 전 미리 토큰을 발급받아 요청한다. - 이 방식은 로그인 과정은 포함되어 있지 않고 이미 토큰을 발급받았다는 가정하에 하나의 API만 테스트하기 가장 적합한 방법이라고 생각이 되었습니다. - 번거롭지만 jwt를 직접 생성해주기 위해 jjwt 라이브러리를 nGrinder에 포함시켜야 될 것 같습니다 - 하지만 이렇게 스크립트에서 토큰을 발급해주는게 맞는지 실무에서도 이런식으로 사용하는 경우가 있는지 궁금합니다.. 처음 부하 테스트를 적용하려고 하는데 oauth2 + jwt로만 구성된 예제가 보이지 않네요 ㅠㅠ 어느 방법이 가장 적절한지 혹은 더 나은 방법이 있는지 조언을 구하고자 질문 남깁니다!
개발자
#ngrinder
#oauth
#jwt
#부하테스트
#성능테스트
답변 0
댓글 0
조회 97
7달 전 · 익명 님의 질문
웹뷰 auth 처리 질문입니다
안녕하세요, React native에서 각 탭들이 서로 다른 웹뷰를 사용하고 있습니다. 한 탭에서 accesstoken을 refresh를 하고 있는 상태에서 다른 탭에 들어갈 경우 refresh token이 갱신되지 않은 상태에서 요청을 보내 동시성 이슈(race condition)가 발생할 수 있을 거 같은데 어떻게 해결해야 할까요? 그냥 단일 웹일 때에는 axios interceptor에서 큐에 넣어서 해결했는데.. 토큰을 갱신해야 할 때마다 앱단으로 보내준 다음에 거기서 큐로 처리하고 완료되면 각 웹뷰로 뿌려주는 방식으로 가야 하려나요? 현직에 계신 분들 웹뷰 auth 어떻게 처리하시나 궁금합니다.
개발자
#fe
#react
#reactnative
답변 0
댓글 0
조회 55
7달 전 · 백승훈 님의 새로운 답변
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
조회 37
7달 전 · 김인후 님의 새로운 답변
spring security에서 JWT를 사용할 때 질문이 있습니다.
SecurityConfig에서 .requestMatchers(HttpMethod.GET, "/boards/*/comments").permitAll() 이런 식으로 허용을 해주고 JwtAuthorizationFilter에서 accessToken이 유효하지 않으면 response에 토큰에 문제가 생겼다는 에러 메세지를 리턴을 하게 해뒀습니다. GET /boards/*/comments 요청을 보내면 해당 게시물의 댓글들을 조회를 해올 때 좋아요를 누른 상태인지 누르지 않은 상태인지 구분을 할때 문제가 생겼습니다. 로그인을 한 사용자는 댓글들을 조회할 때 좋아요를 눌렀나 안눌렀나 확인을 해야하고 로그인을 하지 않은 사용자는 무조건 좋아요를 안 누른 상태로 해야되는데 JwtAuthorizationFilter에서 에러 메세지를 리턴을 하되면 로그인을 해야지만 조회가 되는 문제가 생기고 JwtAuthorizationFilter에서 에러 메세지를 리턴하는 코드를 빼자니 모든 Controller쪽에서 null체크를 해줘야 하고... 감을 못잡겠습니다ㅜ_ㅜ
개발자
#java
#spring
답변 1
댓글 0
조회 59
8달 전 · lepffm 님의 새로운 답변
예외처리 중앙 집중화
안녕하세요, 현재 서비스를 만들고 있는 상태입니다, 저번 서비스 보다는 더욱 유지보수를 올리고 어느정도 규약이 지켜진 상태로 만들고 싶은 상태인데, 점점 규모가 커지다보니 적절한 예외가 필요하다 느꼈고 예외처리를 세분화(MemberException, AuthException 등..) 시키는 과정에서 코드 중복이 상당히 많이 발생하는 문제가 생겼습니다, 그래서 모든 예외처리 로직을 common쪽으로 이동시키고 인터페이스를 통해서 느슨하게 연결을 해둔 상태인데, 이 방법이 괜찮을지 현업 분들의 조언을 듣고 싶습니다, 다소 부족한 설명임에도 불구하고 답변을 주신다면 감사하겠습니다. 오늘도 좋은 하루 되시길 바랍니다!
개발자
#예외처리
#서비스
#exception
#코드작성
#코드리뷰
답변 1
댓글 0
조회 42
9달 전 · 익명 님의 질문
Firebase sdk에 관한 질문입니다.
Firebase db로 2개의 프로덕트가 있는데 하나는 클라이언트에서 하나는 서버단에서 사용하려고 Initialize() 를 사용하려하는데 2가지의 이슈가 있었는데 getAuth()에 app이라는 변수명에 config를 정의 해두고 getauth(app)까지는 무제없었는데auth의메서드를 사용하려하니 이미 duplicate 블라블라..에러가 뜨더라구요. Firebase 공식문서 확인을 하면서 작성하긴했는데 이제 3일차 되는데 너무어려워서 질문남겨봅니다..
개발자
#firebase
#next.js
답변 0
댓글 0
조회 24
9달 전 · devwoo 님의 새로운 댓글
in react-native cli, No Firebase App '[DEFAULT]' has been created - call firebase.initializeApp()
안녕하세요 운영체제 windows, react-native cli, android를 사용중입니다. 구글링을 해도 도저히 안나오길래 질문을 드립니다.. firebase react native auth, app 홈페이지에서는 해답이 없더라구요... 혹시 해결방법 아시는분들 계신가요 ㅠㅠ
개발자
#react-native
#react-native-cli
#firebase
답변 1
댓글 1
조회 116
일 년 전 · 미네르바 님의 질문 업데이트
플러터 앱 구글로그인 연동 실패
플러터 앱에 파이어베이스를 이용해 구글로그인을 하려고 하는데 파이어베이스는 연동된것 같은데 구글로그인 버튼을 누르면 여러아이디 중에 선택하라는 창이 뜨고 아무런 반응이 없습니다. 계속 로그인 창에 머물고 구글 로그인 실패라는 메시지가 뜹니다. 이유를 모르겠습니다ㅠ 이거는 무조건 keystore 문제더군요. 재생성해서 파이어베이스 앱설정에 추가했고, 구글 클라우드 콘솔의 OAuth 2.0 클라이언트 ID의 sha1와 API 키의 sha1을 일치시키니 작동이 잘 됐습니다. 알면 별일 아니지만 모르니 해결까지 쉽지 않았네요.. 오늘도 이렇게 하나 배워나갑니다.
개발자
#구글로그인
#flutter
#파이어베이스
#안드로이드스튜디오
답변 0
댓글 0
조회 97
일 년 전 · 정훈 님의 새로운 답변
스프링 시큐리티 회원가입
스프링에서 회원가입을 구현할 때 스프링 시큐리티를 이용해서 구현하는 것이 괜찮을지 OAuth2를 사용하는 것이 괜찮을지 고민됩니다
개발자
#스프링시큐리티
#스프링-시큐리티
#스프링
#스프링부트
답변 1
댓글 0
조회 105
일 년 전 · Ed 님의 새로운 답변
사용자 등급에 따라 다른 화면을 보여주고 싶어요.
Next.js 14버전을 사용하고 있습니다. 홈페이지에 접속했을 때, 사용자의 로그인 상태 여부에 따라 각기 다른 컴포넌트를 보여주고 싶습니다. const Main = () => { const isLogin = useRecoilValue(loginStatus); const user = useRecoilValue(userAtom); return ( <> <AuthWrapper> {isLogin && user ? <Login/> : <Logout />} </AuthWrapper> </> ) }; export default Main; isLogin과 user는 로그인 여부와 회원 정보에 대한 전역 변수입니다. isLogin의 default값은 false이고, user의 경우 isLogin이 true일 때만 존재합니다. (로그인 상태일 때 해당 유저 정보를 api로 호출) 그리고 <AuthWrapper>를 통해 해당 전역 변수들을 업데이트 해줍니다. 제가 원하는 건 최초 페이지 접속 시에 AuthWrapper를 통해 state값을 초기화해주고, 이에 알맞게 컴포넌트가 렌더링 되는 것입니다. 하지만 isLogin의 default값이 false이기에 로그인 상태일 경우, 순간적으로 Logout컴포넌트가 출력되었다가 AuthWrapper에서 검증 후 state값이 변경되면 Login컴포넌트가 출력됩니다. 이 순간적인 깜빡임을 없애고 바로 동작할 수 있게 하는 방법이 있을까요? +) 추가로.. 서버 사이드에서 처리하기에는 AuthWrapper 내부에서 storage값을 사용하거나 useEffect등을 사용하기에 불가능했습니다.
개발자
#next.js
#react
답변 4
댓글 0
조회 102
일 년 전 · 허니 님의 새로운 답변
리액트 로그인질문..
react + 파이어베이스만 써오다가 react + express 조합을 오랜만에 사용중인데 긴가민가한점이있어서 질문드립니다 ㅠㅠ import axios from 'axios'; const instance = axios.create({ baseURL: process.env.REACT_APP_API_BASE_URL, timeout: 2500, headers: { 'Content-Type': 'application/json', withCredential: true, }, }); instance.interceptors.request.use( (config) => { const token = localStorage.getItem('token'); if (token) { config.headers['Authorization'] = token; } else { delete config.headers['Authorization']; } return config; }, (error) => { return Promise.reject(error); } ); export default instance; 이렇게 인터셉터를주어서, 요청할 때마다 토큰을 전달하고있습니다. 그리고 프라이빗 라우터 + 유저정보 인증 훅을 사용해서 로그인사용자만 접근가능하게 페이지를 설정해줬습니다. 근데 질문 1. 네트워크탭 Request Headers 에서 Authorization을 확인해보면 토큰정보가 그대로 노출되고있는데요 원래 이렇게되나요? 질문 2. Bearer + token 이렇게 보내는 경우는 포스트맨이나 이런걸로 테스트할때만 Bearer 을 붙여서 보내주면될까요? 질문 3. 검색 키워드가 생각이안나서 질문으로 올립니다. 아주 옛날에는 (4년전) App.tsx에서 if(localstorage.token){ setAuthToekn(token); } 이런식으로 하고, setAuthToken함수는 import axios from 'axios'; const setAuthToken = (token) => { if (token) { axios.defaults.headers.common['x-auth-token'] = token; } else { delete axios.defaults.headers.common['x-auth-token']; } }; export default setAuthToken; 이런식으로 되어있었는데요, 요즘은 제가 짠 코드처럼 axios.인터셉터 식으로 하는게 맞나요? 질문 4. 그럼 요즘도 회원가입/로그인시 로컬스토리지에 유저 정보 (닉네임 이름 이메일, 토큰정보)만 저장해두고 로그인하면, 로그인버튼이 회원 닉네임으로 변하게 해준다던가.. 이런식으로 분기처리를 하나요? ( 저는 이렇게하고있어서요.. 로딩처리를 줄수도있겠지만 깜빡거리는게 싫고, 또 로컬스토리지로안하면 로그인버튼으로 잠깐바꼇다가 회원닉네임이 표시되더라구요) 질문5. (질문4와 이어집니다.) 만약 질문4처럼하면 사용자가 사이트에 계속 로그인중인데, 이 토큰이 끝났는지 판단하려는 코드를 따로 작성해줘야할까요? 예를들면, App.tsx에 서버 api/auth같은거에 요청보내는 로직을 작성해서, 토큰만보내서 유효한 토큰인지 아닌지, 유효하지않은토큰이면 에러를 리턴시켜준다던가, 리프레쉬토큰을 발급시켜서 연장시켜준다던가 이런식으로하면될까요? 마지막으로 질문이 좀 많고 중구난방인데 죄송스럽고 조심스럽네요..
개발자
#react
#login
#register
#local-storage
#jwt
답변 1
댓글 0
조회 107
일 년 전 · 손대호 님의 댓글 업데이트
API 호출 시, 응답의 반환하는 방법에 대해 질문이 있습니다.
제가 했던 방식과 다른 새로운 방식을 알게 됐는데 다른 개발자분들은 일할 때 어떤 식으로 통신하는지 궁금증이 생겼습니다. 그리고 이번 기회에 다른 개발자들과 이야기해 보면서 또 어떤 방식이 있는지 알기 위해 커리어리에 첫 글(질문)을 쓰게 됐습니다. —— ***들어가기 전에*** - 신입 백엔드 개발자로 취업 준비 중입니다. - 다양한 방식으로 해보는 걸 좋아하기 때문에 장단점만 있을 뿐 정답은 없다고 생각합니다. - API 요청 시, `Reponse status code`는 클라이언트-서버와의 약속이라고 생각하고 있고, 약속을 했으면 따라야 한다고 생각합니다. - 기간이 짧은 프로젝트이기 때문에 어떤 답변이 오더라도 프로젝트에서 정한 약속을 바꿀 생각은 없습니다. 프로젝트가 끝나고 백엔드 개발자분과 리팩토링을 하면서 의견을 공유해보고 싶긴 합니다. (원하지 않는다면 어쩔 수 없고요..) ***중요*** - 글을 잘 쓰는 편이 아니라 이해가 안되거나 제 말투가 공격적이라고 느껴지는 부분이 있으면 언제든지 말씀해 주세요! - 만약 방식이 잘못됐다고 생각하시면, 그렇게 생각하는 이유와 가능하다면 경험을 공유해주세요! —— # 본문 지금까지 RFC / MDN / IT 기업 기술 블로그 등을 보고 REST API를 공부했고, 설계 원칙에 따라 모든 API 요청에 대한 Response 상태 코드를 200, 400, 401, 403, 404, 500 등과 같이 정확하게 주고받아야 한다고 생각하고 있었습니다. (물론 애매한 경우도 있었습니다) 그런데 최근 짧은 기간 동안 프로젝트를 하게 되었는데, iOS 개발자(2년차 현직)분과 백엔드 개발자(신입 개발자 취업 준비)분께서는 아래와 같은 의견을 주셨습니다. ''' 클라이언트의 입장에서 요청을 보냈을 때, 서버와 연결이 실패한 게 아니라 서버를 통해 정의된 에러 (4xx, 5xx)를 받았으니 통신에 성공한 것이다. 그러므로 API의 모든 요청(권한이 없는 사용자의 요청, 잘못된 리소스 요청, 이미 가입한 사용자가 다시 회원 가입 요청 등)의 `Response status code`는 200을 반환하고 body에 서버에서 응답한 상태 코드(3xx,4xx, 5xx 등)와 함께 커스텀으로 명시한 에러 코드(AUTH-001 등), 에러 메시지를 보내야 한다. ''' 관점을 다르게 보면 그럴 수 있겠구나 싶었고 문득 주변 개발자분들은 어떻게 구현을 하는지 궁금해져서 이야기를 나눠봤는데 그 결과는 반반이었습니다. 아직 그분들도 연차가 높지 않기 때문에 그렇게 설계한 이유와 이점에 대해 자세히 알고 계시지는 못했습니다. —— # 질문 1. 모든 요청의 Response status code로 200을 보내는 건 REST API 설계에 어긋난다고 생각하는데 이렇게 설계하는 이유와 있는지 궁금합니다. 2. 모든 API 요청의 Response status code를 200으로 보내는 방식으로 구현한다면 나중에 어떤 문제가 생길 수 있을까요? (예를 들어 웹으로 확장 등) - 현재 iOS로 개발 중이며, 확장 가능성은 없는 상태입니다. 단순하게 궁금해서 질문드립니다. 3. 만약 두 방식 외에 다른 방식으로 통신한 경험이 있으시면 그 방식을 선택하신 이유와 이점도 궁금합니다.
개발자
#rest-api
#statuscode
#지식-공유
답변 1
댓글 1
추천해요 2
조회 759
일 년 전 · 김도원 님의 답변 업데이트
퇴사한지 반년 넘은 3년차 java 개발자 입니다..
전 회사에서 크롤링으로 혹사당한 후 대상포진까지 걸리고 더는 안되겠다 싶어 퇴사하고 3개월정도 휴식기를 가지고 3개월째 준비하고 있습니다. 총 반년.. 사이드프로젝트도 계속 만들고 있는데 어디까지 손봐야 하는지 감이 잡히지 않습니다.. 코딩테스트는 사실상 준비하지 않아서 과제테스트를 보는 곳으로 생각하고 있는데 3년차로 들어가게 된다면 어떤 것을 해야하는지 혼란합니다. 현재는 spring security, jwt, oauth2 를 이용해 로그인 기능을 구현해 놓은 상태에 docker, aws, jenkins를 이용해 서버에 올리는 정도까지만 진행한 상태입니다.. 찾아보니 redis, kafka 같은 것들도 해야 할 것만 같은데 시간이 없는 상태에서 진행하는게 맞을까요? 테스트코드도 습관이 되어 있지 않아서 혼자서 작성하려니 너무 벅찬 느낌이 듭니다.. 현재하고 있는 것에서 마무리하고 구직을 해도 상관없을지, 더 배우고 채워야 할지 모르겠습니다,,
개발자
#이직
#java
#백앤드
#3년차
답변 5
댓글 6
추천해요 10
조회 3,616
일 년 전 · 손우진 님의 새로운 답변
Spring Cloud Config 서버에 관하여 질문이 있습니다.
MSA 아키텍처에서는 대개 환경 정보를 일괄적으로 관리하는 서버를 두는 것으로 알고 있습니다.(Cloud Native 12 Factors) 그 중에서 Spring에서 사용할 수 있는 것은 Spring Cloud Config Server입니다. 해당 컨피그 서버를 사용하면 효율적으로 application.yml를 관리할 수 있죠.. 그런데 여기까지는 좋습니다만 제 지식으로는 해결할 수 없는 문제가 발생했습니다. Github Actions CI/CD에서 빌드를 할 때 application.yml이 없어도 되지만 빌드 검증을 위해선 필요합니다. 그런데 이때 Config Server를 외부 포트로 열어놓고 Github actions 접속시 비보안적이지 않나요..? 그래서 Spring Basic Auth를 사용하여 접근하려 했지만 왜인지 모르게 오류가 계속 뜹니다. (몇 시간 동안 해봤지만 안됩니다.. 충돌 때문인지는 모르겠지만 그냥 Security 관련 Bean이 설정이 안되더라구요..) 관련해서 AWS를 활용하여 일회성 인증을 하는 방법이 있다고 합니다만.. 이것만이 방법은 아닐 거 같습니다. 에이 몰라! Config Server 외부 포트 열어놓는건 위험하니까 그냥 Github actions secrets에도 application.yml를 다 넣고 빌드 검증해보고, 실제 배포때는 Dockerfile로 프로파일 설정해서 Config Server에서 불러와야지! 라고 하기에는 그럼 application.yml이 수정될 때 마다 github actions, config server 둘다에서 수정해줘야 할 것 같습니다… 관련하여 조언 주시면 감사하겠습니다.
개발자
#spring
#spring-cloud
#spring-cloud-config
#msa
답변 1
댓글 0
조회 73
일 년 전 · 여진석 님의 새로운 댓글
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
조회 1,041
일 년 전 · 우엉김밥 님의 질문
nextauth 많이들 쓰시나요?
토이프로젝트 하는중에 nextauth 를 사용하고있는데 제가 초보자라 오류가 많이나네요ㅋㅋㅋ 저는 공식문서 만으로는 잘 안 되는것 같은데 .. 점점 nextjs 정 떨어지는중 ㅠㅠ 다들 nextAuth 사용하실때 공식문서 만 보시나요??
개발자
#next-auth
답변 0
댓글 0
조회 157
일 년 전 · 프레드윰 님의 답변 업데이트
안드로이드 스튜디오에서 메일전송기능 구현하는법
안녕하세요 이번에 3학년 올라가는 컴공 학부생입니다. 방학동안 안드로이드 프론트엔드 공부를 하면서 동기들과 프로젝트로 앱을 하나 만들고있습니다. 코틀린을 사용해서 문의하기 기능을 만드는 중인데 인텐트를 사용하지 않고 문의 제목은 메일 제목으로, 문의 내용은 메일 내용으로 전송하는 방법을 찾고있습니다. 구글 검색을 해보니 smtp가 뭔지는 잘 모르겠지만 그걸로 구현이 가능한 것 같은데 글들이 최소 2년전 자료들이어서 현재 쓰고있는 hedgehog 버전과 통용되지 않는것 같습니다. 그래도 과거글을 바탕으로 구현해보고 있는데 2가지 문제가 발생했습니다. 1. Zendesk Auth 사이트에서 구글메일 보안비밀번호를 확인할수있다고 하는데 확인이 되지 않습니다. 2. 구글에서 지원하는 smtp 정보를 받아와서 MimeMessage 객체에 전달하는 과정에서 getDefaultInstance의 authenticator 부분에 javax.mail의 Authenticator를 상속받은 this를 넣었는데 FATAL EXCEPTION: DefaultDispatcher-worker-1 javax.mail.AuthenticationFailedException 오류가 발생했습니다. 스택오버플로우를 찾아보니 새로운 애뮬레이터를 만들라는 말이 있어서 해봤는데 실패했습니다. 구글신께 도움을 구해보려다 실패해서 여기에 올립니다!
개발자
#android
#androidstudio
#kotlin
답변 1
댓글 0
조회 136
일 년 전 · 오윤찬 님의 새로운 댓글
자바 백엔드 개발자가 되기 위해서 우선순위를 어떻게 정해야할까요?
안녕하세요 백엔드에 관심이 많은 학생입니다. 자바를 배우고 스프링과 스프링부트를 공부하려고 스프링부트3관련 책을 사서 공부하고 있습니다. 현재 rest api 형식으로 crud, jpa,타임리프,스프링 시큐리티,JWT,OAuth2,aws배포,깃허브 액션(ci/cd) 정도는 해봤습니다. 하지만 공부내용을 완벽히 제걸로 만들지 못한 것 같해서 좀 더 깊고 기초를 튼튼하게 만들고 싶습니다. 근데 이 책을 공부하고 난 뒤에 어떤 것을 배우면 좋을지도 잘 모르겠습니다. (데브옵스에도 관심이 있고 백엔드에도 관심이 있습니다.) 또한 이 상태에서 스프링을 공부할지 스프링부트를 공부할지도 모르겠습니다. 스프링부트를 한다면 무엇을 더 해야할지 정말 고민입니다...
개발자
#spring
#spring-boot
#우선순위
#백엔드
#자바-개발자
답변 2
댓글 2
조회 167
일 년 전 · 박하민 님의 새로운 댓글
Next14 SSR 과정에서 Authorization에 쿠키를 사용해 토큰값을 전달하면 에러가 발생합니다..
안녕하세요. 혼자서 해결해 보려고 했지만, 오랜 시간 해결하지 못해 지푸라기라도 잡는 심정으로 질문 올려봅니다.. 기존에 localstorage를 사용해 fetch로 데이터를 요청했으나 SSR 과정에서 window 사용이 불가능하기 때문에 쿠키를 사용을 계획했습니다. 로그인 -> 쿠키에 토큰값 저장 -> 데이터 요청 시 쿠키에서 토큰 값을 꺼내고 헤더 Authorization에 담아 SSR에서도 사용하려고 했습니다. next에 내장되어있는 'next/headers'가 아닌 'cookies-next'를 사용하고 있습니다. <문제 상황> 처음에는 토큰 유효 기간이 지났다(토큰 값이 들어오지 않았다)는 에러가 발생하고 곧이어 데이터를 정상적으로 받아옵니다 (제 추측으로는 SSR 과정에서 토큰 값을 인식하지 못하고 에러가 발생하고 클라이언트 단에서는 쿠키 값을 정상적으로 반영해 데이터 페칭이 진행된 것 같습니다.) <질문> 1. Suspense를 적용하지 않을 경우 에러 없이 동작하지만 next streaming이 적용되지 않습니다.. 그리고 getCookie를 통해 가져온 값이 SSR 시 적용되지 않는 이유가 궁금합니다! 2. 현재 쿠키를 사용해 SSR 시 토큰 값을 전달하려는 방법이 최선의 방법이 맞는지 궁금합니다.
개발자
#next.js
#react
답변 1
댓글 9
조회 988
일 년 전 · 장훈 님의 새로운 답변
postman api error : aborted
안녕하세요 국비 학원 다니는 비전공자 학생입니다.. 선생님들 정말 별거 아닌걸로 질문하는 것처럼 보이시겠지만 프로젝트 마감일이 얼마 안남았는데, 선생님께서는 바쁘셔서 봐주시지도 않고.. 에러가 나서 너무 막막해서 올려요.. 현재 스프링부트, jwt 사용중이고 토큰도 authorization bearer Token에 입력했습니다.. post 는 문제없이 되는데 다른 get에서만 계속 저런 에러가 떠요... 왜 그런건가요 ㅠㅠㅠ 혹시라도 문제 확인을 위해 더 확인이 필요한 부분이 있다면 추가적으로 첨부하겠습니다...!! 제발 도와주세요
개발자
#error
#springboot
#api
#backend
#postman
답변 1
댓글 0
조회 145
일 년 전 · 삭제된 사용자 님의 질문 업데이트
백엔드 인턴 면접에서 프로젝트 경험 예상 질문
처음으로 인턴 면접을 준비하고 있습니다. 기술질문이나 인성질문은 대충 예상이 가는데 포트폴리오에 적은 프로젝트 관련된 질문은 어떻게 대비해야할까요?? 찾아보니까 1) 프로젝트 간단 소개 및 내 역할 2) 프로젝트 하면서 어려웠던 부분 3) 프로젝트때 사용한 기술 스택의 기술 질문 대비 4) 팀 프로젝트라면 협업할 때 어려웠던 부분 5) 프로젝트에서 이런 기능이 있던데 이걸 어떻게, 왜 그렇게 구현했는지 이정도로 대비하면 될 것 같긴 한데 처음이라 잘 모르겠네요 특히 5번을 어떻게 대비할지 막막합니다ㅠㅠ 예를 들어 스프링 시큐리티로 auth 관련 로직을 구현해본 적이 있다고 한다면 어떤 필터를 사용했는지, 커스텀한 필터가 있다면 왜 커스텀했고 어떻게 커스텀했는지, 안써도 되는데 왜 스프링 시큐리티를 사용했는지 or nginx로 무중단배포 구현해본 적 있다고 하면 원리가 어떻게 되는지 이런 류의 질문이 나온다고 생각하면 될까요??
개발자
#인턴
#면접
#면접질문
#포트폴리오
답변 0
댓글 0
추천해요 1
조회 134
일 년 전 · 익명 님의 질문 업데이트
이해할 수 없는 401 오류가 발생을 합니다
프론트엔드에서 모든 페이지와 컴포넌트를 주석 처리했음에도 불구하고 GET http://***/main에401 (Unauthorized) 오류가 계속 발생하고 있습니다. 이 상황은 프론트엔드 측에서 어떠한 요청도 보내지 않고 있는데도 나타납니다. 백엔드에서도 이와 관련된 요청을 받고 있지 않다고 합니다. 알아본 결과 이러한 오류는 인증 문제와 관련이 있지만, 현재 상황에서는 어떤 요청도 발생하지 않고 있습니다. 이러한 문제가 왜 발생하는지, 혹시 경험이 있으신 분이 계시다면 조언을 구하고 싶습니다. ps. 해결 했습니다. index.html link href 값 문제였습니다.
개발자
#react
#java-spring-
답변 0
댓글 0
추천해요 1
조회 131
일 년 전 · 장성호 님의 답변 업데이트
jwt 리플레시 토큰은 어디서 언제 데이터베이스에 저장할까요?
사수가 없는 상태에서 블로그 글들을 보고 어떻게 어떻게 jwt 토큰 발행까지 해냈습니다. 1차 로그인 하면 아이디 비밀번호를 받고 아이디로 검증후 토큰을 발급해서 웹페이지로 전달했는데요 블로그에는 그 추후의 로직에 대한 설명을 찾기가 어렵더라구요 ㅠ JwtTokenProvider 클래스에서 generateToken 메서드에서 에세스 토큰과 리플레시 토큰을 생성하는데 이때 데이터베이스에 이미 있는지 검사하고 저장하는건지? JwtAuthenticationFilter클래스에서 doFilter 메서드에서 저장하는지 그런데 이부분은 저같은 경우에는 GenericFilterBean 을 상속 받았는데 이런 방법을 사용하는 예시 에서는 UsernamePasswordAuthenticationFilter 을 상속받아서 사용하더라구요 지금 막힌 부분이 토큰이 DB에 저장을 어디서 하는지 그리고 아직 토큰유효가 끝나면 리플레시 토큰 요청과 검증후 에세스 재발급 이 남아 있습니다. 어떤 흐름으로 풀어야하는지 알려주세요 ㅠ
개발자
#jwt
#refreshtoken
답변 1
댓글 0
조회 1,290
일 년 전 · 익명 님의 질문
틱톡 해시태그 크롤링 문의
틱톡 해시태그 크롤링을 하려는데 An error occurred: Trending() takes no arguments 계속 이런 오류가 나오네요 뭐가 문제인지 모르겠습니다 from TikTokApi import TikTokApi def crawl_tirtir_hashtag(count=10): try: api = TikTokApi() # Get trending videos for 'tirtir' hashtag tiktoks = api.trending(count=count, hashtag='tirtir', lang='en') for tiktok in tiktoks: print("Username:", tiktok['author']['uniqueId']) print("Video URL:", tiktok['video']['playAddr']) print("Description:", tiktok['desc']) print("Hashtags:", tiktok['challenges']) print("\n---\n") except Exception as e: print(f"An error occurred: {e}") # Example usage crawl_tirtir_hashtag(count=5)
개발자
#python
답변 0
댓글 0
조회 291
일 년 전 · 김태우 님의 새로운 댓글
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
조회 470
일 년 전 · 익명 님의 질문
파이어베이스 이메일 인증 만료 메시지가 계속 뜨는데 같은 문제 겪으신 분 계신가요?
안녕하세요! 저는 현재 파이어베이스, 플러터 이용해서 웹앱을 개발 중입니다. 파이어베이스 auth 사용해서 회원가입과 로그인을 처리하고 있어요! 회원가입 시 userCredential.user!.sendEmailVerification() 메서드를 호출해 사용자의 메일 주소로 이메일 인증 메일을 보냅니다. 가끔 메일이 안 보내지는 일은 있었지만, 지금까지 잘 사용하고 있었는데, 갑자기 메일로 온 링크를 클릭했을 때 만료 메시지만 뜨기 시작했어요. 메시지 전문은 아래와 같아요. “이메일 인증 재시도 이메일 인증 요청이 만료되었거나 링크가 이미 사용되었습니다.” 추가로 확인해보니, 비밀번호 재설정 메일도 링크 클릭하니 만료되었다는 메시지가 뜨네요ㅠㅠ 2주 전에 파이어스토어 규칙 부분을 변경한 게 있는데, 그게 원인인가 싶어 모두 true로 설정 후 테스트해봐도 계속 문제가 발생합니다. 파이어베이스에서 보내주는 이메일 링크 클릭 시 뜨는 만료 메시지 해결 경험 있으시면 어떻게 해결하셨는지 공유해주시면 정말정말 감사하겠습니다..!!
개발자
#파이어베이스
#플러터
#이메일인증
#인증만료
#비밀번호재설정
답변 0
댓글 0
조회 87
일 년 전 · 오두용 님의 답변 업데이트
[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,507
일 년 전 · 안강민 님의 새로운 댓글
카카오 restapi 오류
카카오에서 제공하는 api중 Daum검색 api를 카카오 docs에 있는 예시 그대로 mac 터미널에서 실행했더니 accessDenied 에러가 발생합니다. 아래는 카카오 공식문서의 예시입니다 curl -v -X GET "https://dapi.kakao.com/v2/search/web" \ --data-urlencode "query=이효리" \ -H "Authorization: KakaoAK ${REST_API_KEY}" apikey는 문제가 없음을 확인했습니다 찾아봐도 비슷한경우가 없네요..
개발자
#curl
#restapi
#카카오
답변 1
댓글 6
조회 96