구축 환경 💻 Spring boot + JSP 📌 Naver 공식 문서 네이버 로그인 API 명세 - LOGIN 네이버 로그인 API 명세 네이버 로그인 API는 네이버 로그인 인증 요청 API, 접근 토큰 발급/갱신/삭제 요청API로 구성되어 있습니다. 네이버 로그인 인증 요청 API는 여러분의 웹 또는 앱에 네이버 developers.naver.com 📌 Naver API 서비스 등록하기 NAVER Developers 네이버 오픈 API들을 활용해 개발자들이 다양한 애플리케이션을 개발할 수 있도록 API 가이드와 SDK를 제공합니다. 제공중인 오픈 API에는 네이버 로그인, 검색, 단축URL, 캡차를 비롯 기계번역, 음 developers.naver.com [Naver Developers] 들어가기 ..
구축 환경 💻 Spring boot + JSP 📌 Google 공식 문서 웹 서버 애플리케이션용 OAuth 2.0 사용 | Authorization | Google for Developers 이 페이지는 Cloud Translation API를 통해 번역되었습니다. 의견 보내기 웹 서버 애플리케이션용 OAuth 2.0 사용 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 developers.google.com 📌 Google API 서비스 등록하기 Google 클라우드 플랫폼 로그인 Google 클라우드 플랫폼으로 이동 accounts.google.com 왼쪽 상단바 클릭 - [API 및 서비스] - [OAuth 동의 화면] [외부] - [만들기] 클릭 필수 입력 기입 ..
구축 환경 💻Springboot + JSP 📌카카오 인증 구조 이해하기 💡 관련 개념 이해하기REST API를 이용한 인증 처리는 어떻게 되는가?Service Server 는 Redirect_URI/Client_ID/Response_type 을 인증서버(Kakao Auth Server)로 전달한다. 이 때 인증서버는 Service Server의 Redirect_URI로 인가 코드를 전달한다.OAuth 에서 단순 인증처리를 할 땐, 인증 서버로부터 CODE 만 받으면 되지만, 리소스 서버까지 접근하기 위해서는 인증 서버로부터 액세스 토큰(Access Token)을 받아야 한다(리소스 서버: 사용자의 정보를 지닌 카카오 데이터베이스) ⇒액세스 토큰(Access Token) 은 대리인 인증서라 생각..
🚨 상황 Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences 테이블의 데이터를 delete 으로 삭제 하려는 도중 Error Code:1175 발생 원인 MySQL Workbench 에서 기본적으로 제공하는 SAFE MODE 설정 해결 법 1. SQL 문으로 해결 SET SQL_SAFE_UPDATES = 0; 2. 옵션 변경 Edit - Preferences - SQL Editor - Safe Updates 체크 해제 해주기
📌 암호화 하는 목적 패스워드를 암호화 없이 평문으로 저장을 한다면, 정보 유출 문제로 이어진다. 이러한 사항을 방지하기 위해 인코딩 된 패스워드를 데이터베이스에 저장하게 되는데, 이번 포스팅에서는 스프링 시큐리티의 PasswordEncoder를 이용하여 패스워드를 암호화(인코딩/디코딩) 하는 방법을 알아 볼 것이다. 📌 build.gradle dependencies 설정 implementation 'org.springframework.security:spring-security-crypto' dependencies 가 추가되면 gradle refresh 하는 것을 습관화 하자 ! 📌 사용할 import import org.springframework.security.crypto.bcrypt.BCrypt..
✔ 실행법 Console 창 부근 플러터 아이콘 클릭 (Open Flutter DevTools) ✔ 실행 결과
✔ 다음과 같이 설정하기 debugShowCheckedModeBanner: false, ✔ 관련 코드 보기 void main() { runApp(const MyApp()); } class MyApp extends StatelessWidget { const MyApp({super.key}); @override Widget build(BuildContext context) { print("build() 메서드 호출 확인"); return MaterialApp( debugShowCheckedModeBanner: false, home: StorePage(), ); } }
📌 interceptor 란? interceptor 는 컨트롤러에 들어오는 요청 HttpRequest와 컨트롤러가 응답하는 HttpResponse를 가로채는 역할을 합니다.인터셉터는 관리자만 접근할 수 있는 관리자 페이지에 접근하기 전에 관리자 인증을 하는 용도로 활용될 수 있습니다. 이번 주제에서는 컨트롤러에서 인터셉터를 활용하여 접근 권한을 해보고, 기술 침투적인 HttpSession을 제거하여 세션을 처리하려 합니다. 인터셉터는 Servlet의 앞, 뒤에서 HttpRequest, HttpResponse을 가로채는 Filter와 그 역할이 유사한데, Filter와 Interceptor는 분명히 다릅니다. Interceptor Filter 인증/인가 등과 같은 공통 작업 보안 관련 공통 작업 Contr..