TIL_API 인증/인가 적용하기

이고운·2022년 8월 22일
0

1. 인증, 인가 이론

Authentication은 유저의 identification을 확인하는 절차(유저의 아이디와 비번을 확인하는 절차). 인증을 하기 위해선 먼저 유저의 아이디와 비번을 생성할 수 있는 기능이 필요

JWT(JSON Web Tokens)
JWT는 말 그대로 유저 정보를 담음 JSON 데이터를 암호화 해서 클라이언트와 서버간에 주고 받는 것

  • 유저가 로그인 성공한 후에 acess token이라고 하는 암호화된 유저정보를 첨부해서 request를 보냄

유저 로그인

POST /auth HTTP/1.1
Host: localhost:5000
Content-Type: application/json
{
    "username": "joe",
    "password": "pass" // 아이디랑 패스워드 지정
}
const body = {
  username: "joe",
  password: "pass"
}
fetch('http://localhost:5000/auth', {
  headers: {
    "Content-Type": "application/json",    
  }
  body: JSON.stringify(body)
}).then(res => res.json())
  .then(json => {
    //console.log(json); // { access_token: "eyJh...." }
	localStorage.setItem("token", json.access_token)
  })

fetch('http://localhost:5000/me', {
  headers: {
    "Content-Type": "application/json",
	  "Authorization": localStroage.getItem("token")
  }
});

access toten

HTTP/1.1 200 OK
Content-Type: application/json
{
    "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZGVudGl0eSI6MSwiaWF0IjoxNDQ0OTE3NjQwLCJuYmYiOjE0NDQ5MTc2NDAsImV4cCI6MTQ0NDkxNzk0MH0.KPmI6WSjRjlpzecPvs3q_T3cJQvAgJvaQAPtk1abC_E"
}
  • 그러면 서버에서 access token을 복호화해서 해당 유저 정보를 얻게 됨.
{
  user_id : 1 
}

➡️ 이런 절차의 목적은 매번 로그인을 안해도 되게 하는 것

2. API 명세서를 보고 API들을 POSTMAN에서 확인해보기

기본 API주소 : http://auth.jaejun.me:10010

(1) /signup(POST) - header에 key= Content-Type, value= application/json 넣어주고 body - raw -json 형식으로 이메일이랑 패스워드 저장해줌. 그러면 계정 생성됨.

(2) /login(POST)- 위와 동일하게 지정 => access_token이 생성됨.

(3) /me(GET) 이번에는 header안에 key =Authorization, value= "토큰값" 추가해줌. 그러면 하단에 생성된 계정 확인 가능 (id 값)

profile
자 이제 시작이야~ 내 꿈을~ 내 꿈을 위한 여행~~🌈

0개의 댓글