👉 WEB
인증과 인가
인증(Authentication) : Authentication과 user의 identification을 확인 하는 절차.
user의 신원확인을 하는 절차이다.
인가(Authorization) : user에게 받은 정보로 서비스별 이용권한을 확인하는 절차.
🧐 인증 절차
- User sign-in : 유저 회원가입
- Authentication Server에서 JWT를 받아옴
- Application Server로 JWT를 담아서 보내줌
- User에게 응답
💡 access token은 암호화된 user정보로써 인증 절차로 인해 user가 해당 서비스를 이용하기 위해 매번 로그인할 필요없이 계속적으로 이용할 수 있도록 해준다.
💡 JWT(Json Web Token): access token을 생성하는 방법중 하나로써 유저 정보를 담은 json 데이터를 암호화하여 클라이언트와 서버간에 주고 받는것을 의미한다.
🧐 로그인 절차
- User id, password생성
- User password를 JWT(암호화)후 DB에 저장 =>회원가입
- User Login => id, password 입력
- User가 입력한 id, password를 JWT(암호화)후 DB에 회원가입시 저장된 password JWT(암호화)를 비교.
- 일치하면 로그인 성공 / 불일치시 Alet '회원가입 massage'
- 로그인 성공시 access token을 클라이언트에게 전송
🧐 Authorization 절차
- 인증절차를 통해 access token을 생성한다.(id값으로 유저정보 확인)
- user가 request를 보낼때 access token을 첨부해서 보낸다.
- 서버에서는 유저가 보낸 access token을 복호화 한다.
- 복호화된 데이터를 통해 user id를 얻는다.
- user id를 사용해서 database에서 해당 유저의 권한을 확인한다.
- 유저가 충분한 권한을 가지고 있으면 해당 요청을 처리한다.
- 유저가 권한을 가지고 있지 않으면 401 혹은 다른 에러코드를 보낸다.
📌 refer : Justcode