이론 공부

oauth, JWT

Yuco 2023. 3. 11. 22:18

1. oauth 무엇인지?

1) oauth2.0 : 서비스를 이용하는 유저의 타사 플랫폼의 정보에 접근하기 위해 권한을 타사 플랫폼(구글, 네이버, 카카오 등)으로부터 위임 받는 것

2) oauth 동작 방식 : 로그인 요청하면 네이버는 로그인 페이지를 제공하고, 사용자는 id/pw 제공, 만약 일치하는 정보라면 권한 코드 발급을 해주고, 권한 코드(url 뒤에 붙어서 옴)와 클라이언트 아이디, 클라이언트 시크릿을 가지고 토큰을 요청 + 토큰이 발급되고 이 토큰은 DB에 저장됨 (로그인 성공) + 이 토큰으로 사용자 정보 호출 가능
 

2. 네이버 소셜 로그인이 이루어지는 방식/순서?

1) oauth 동작 방식과 동일 : 토큰은 클라이언트 id, 클라이언트 secret, 권한 코드 이 세가지를 통해 요청 가능
 
2) 명세(구조) : 네이버 로그인 API 네이버 로그인 인증 요청 API, 접근 토큰 발급/갱신/삭제 요청 API 구성되어 있음
네이버 로그인 인증 요청 API 여러분의  또는 앱에 네이버 로그인 화면을 띄우는 API 이며, 이용자가 네이버 회원 인증에 성공하면 API로부터 받은 code 값을 이용해서 접근 토큰 발급 요청 API 호출 + 접 토큰 발급 요청 API 통해 받은 접근 토큰(access token) 값은 회원 프로필 조회 비롯하여 여러가지 로그인 오픈 API 호출하는데 사용할 수 있음
 

3. JWT란?

1) JWT(Json Web Token) : 인터넷에서 정보를 안전하게 전송하기 위한 인증 방식 중 하나입니다. JWT는 JSON 형식으로 데이터를 저장하며, 데이터의 무결성을 보장하기 위해 디지털 서명이 포함됩니다. 

2) 동작 방식 : 사용자가 로그인을 하면 서버에서 JWT를 발급하고, 이 JWT를 사용하여 사용자 인증 정보를 안전하게 전송할 수 있습니다. 이후 사용자가 다시 서버에 접속할 때는, JWT를 사용하여 사용자 인증을 확인할 수 있습니다. 

 

3. 인증과 인가?

- 인증 : 회원가입, 로그인 하는 것
- 인가 : 토큰을 제시하고 접근하는 것 (인증 + 허가)
 
* 이번 장고 프로젝트에서 소셜 로그인 이외 그냥 로그인/회원가입은 DB에 데이터 넣고, 동일한 값 있는지 없는지 확인하는 정도로만 끝냈음 
 

'이론 공부' 카테고리의 다른 글

GET / POST 방식  (0) 2023.03.12
인터페이스(Interface)  (1) 2023.03.12
스프링 프레임워크  (0) 2023.03.10
서블릿과 JSP의 차이  (0) 2023.03.07
추상화  (0) 2023.03.02