프로그래밍 685

[OAuth2 + JWT] 애플 로그인 구현(STEP 1)

단계는 애플 개발자 세팅 → 프론트엔드 세팅 → 백엔드 세팅 이렇게 진행해보려 한다.[개발 환경]Front : React Native Expo + WebViewBack : Spring Boot(Gradle, yml) + Spring Security, OAuth2.0, JWT  애플 개발자 콘솔에서 서비스 등록 방법 1. 애플 개발자 사이트 서비스 등록 페이지 들어가기https://developer.apple.com/account/resources/certificates/list 에 들어가 로그인 하기혹은 애플 개발자 사이트 검색해서 들어간 후 하단에 Certificates, IDs, & Profiles 눌러서 들어가기 이 과정에서 애플 계정, Apple Developer Program 등록을 위한 결제가..

[OAuth2 + JWT] 소셜 로그인 구현(Google, Naver, Kakao, Apple)

소셜 로그인을 구현하기에 앞서 책임 분배를 어떻게 할지 정해보자1. Front2. Back[개발 환경]Front : React Native ExpoBack : Spring Boot[구현할 소셜 로그인]Google, Naver, Kakao, Apple 1의 경우 라이브러리를 install 해서 구현 가능인증을 끝내고 사용자 정보를 Back으로 보내면 됨 2의 경우 웹 뷰를 띄워서 해당 앱에서 로그인하는 방식Oauth2 Provider를 통해 리디렉션 방식으로 인증 수행 1로 구현하면 앱 내부에서 로그인 가능2로 구현할 경우 해당 앱(Google, Naver, Kakao, Apple)으로 넘어가서 로그인을 하는 방식 크게 정리하면 위와 같은데 토큰 관리 및 보안상의 이유로 2번을 선택함(보안상의 이유는 Ba..

[Error] EPERM: operation not permitted, uv_cwd

mui 를 클론하고 npm install 을 실행하는 중 아래의 에러가 떴음/Users/username/.nvm/versions/node/v22.12.0/lib/node_modules/npm/lib/cli/validate-engines.js:31 throw err ^Error: EPERM: operation not permitted, uv_cwd at process.wrappedCwd (node:internal/bootstrap/switches/does_own_process_state:142:28) at process.cwd (/Users/username/.nvm/versions/node/v22.12.0/lib/node_modules/npm/node_modules/graceful-f..

[JAVA] 홈택스 인증서 로그인 다시 구현(업데이트 된 부분 반영)

몇 달 전 홈택스 공인 인증서 로그인 + 매입/매출 계산서 조회 부분을 구현했는데 11월 2일 홈택스 고도화 작업으로 인하여 api 등 꽤 많은 변경사항이 있었고 에러가 떴음 변경된 부분 파악하고 업데이트를 하기로 했음 크게 변경된 부분은 로그인을 위한 pkcEncSsn 을 가져오기 위한 API 통신을 할 때, 먼저 쿠키를 세팅해 주는 부분과기존에는 API 요청과 응답을 xml로 통신 했다면 json으로 바꼈다는 점 이를 염두해 두고 서비스 전체 코드를 수정함String getPkcEncSsnUrl = "https://www.hometax.go.kr/wqAction.do?actionId=ATXPPZXA001R01&screenId=UTXPPABA01";// pkcEncSsn, cookies 값 얻기Resp..

[Java] 홈택스 공동 인증서 로그인_3

마지막 단계인 공동 인증서 로그인 하기  API URL : https://www.hometax.go.kr/pubcLogin.do?domain=hometax.go.kr&mainSys=Y이전 페이지 들에서 가져왔던 값들을 header와 params에 세팅해주고 POST 메서드로 통신을 한 후 Response를 받아오기이 Response에는 전자 세금 계산서 조회에 필요한 TXPPsessionID가 들어있음 1. header 및 params 세팅앞서 설명한 내용대로 쿠키와 파라미터를 세팅해주기String url = "https://www.hometax.go.kr/pubcLogin.do?domain=hometax.go.kr&mainSys=Y";HttpHeaders headers = new HttpHeaders(..

[Java] 홈택스 공동 인증서 로그인_2

다음으로 쿠키 세팅과 파라미터 세팅을 해야함 1. 인증서 로그인에 필요한 쿠키를 세팅헤더세팅 값Content-Typeapplication/x-www-form-urlencoded; charset=UTF-8CookieWMONID, TXPPsessionID https://www.hometax.go.kr/wqAction.do?actionId=ATXPPZXA001R01&screenId=UTXPPABA01위의 API GET 요청을 통해 쿠키 정보를 가져와  WMONID, TXPPsessionID 정보를 세팅하고, 파마미터 세팅에 중요한 값인 Response에서 pkcEncSsn에 담긴 값을 가져옴 아래와 같이 Header 세팅을 해줌HttpHeaders headers = new HttpHeaders();header..

[Java Error] java.security.NoSuchProviderException: No such provider: BC

java.security.NoSuchProviderException: No such provider: BC 에러 원인과 해결 방법 원인 Cipher cipher = Cipher.getInstance("SEED/CBC/PKCS5Padding", "BC");위의 코드를 실행했더니 아래의 에러가 났음 먼저 코드를 살펴보자SEED 알고리즘은 java.security의 Provider에서 제공하지 않는 알고리즘이기에 org.bouncycastle 를 gradle에 추가해서 가져오려고 했음// gradleimplementation group: 'org.bouncycastle', name: 'bcprov-jdk18on', version: '1.77'implementation group: 'org.bouncycastl..

[Postman] 브라우저 요청 복붙하기

브라우저에서 API 통신을 하는 경우 그 정보를 그대로 가져와서 사용하고 싶을 때가 있음그럴때는 간단하게 cURL 을 복사해와서 import 해서 사용하면 되는데 그 방법을 공유하고자 함 1. API 통신 원하는 요청 찾기F12 로 개발자 도구 들어가기 > 네트워크 탭 클릭 > 원하는 요청 찾기 2. 우클릭하여 cURL 복사 클릭 3. Postman에서 import 클릭하여 붙여넣기Ctrl + v 하면 알아서 import 됨👍

[React Native] WebView 사용 방법

React Native에서 기본 웹 브라우저를 통해 URL 여는 방법React Native 모듈에서 제공하는 Linking을 사용하면 간단하게 구현 가능함https://carpet-part1.tistory.com/942 라는 사이트를 웹뷰로 열고 싶다면, Linking.openURL 사용해서 링크를 열어주면 됨 코드 예시import React from 'react';import { Button, Linking } from 'react-native';const Component = () => { const openWebView = () => { Linking.openURL('https://carpet-part1.tistory.com/942'); }; return ( );};export ..