→ 여기까지가 회원가입
POST /auth HTTP/1.1
Host: localhost:8000
Content-Type: application/json
{
"username": "HongGilDong",
"password": "mypass1234"
}
const body = {
username: "HongGilDong",
password: "mypass1234"
}
fetch('http://localhost:8000/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:8000/me', {
headers: {
"Content-Type": "application/json",
"Authorization": localStorage.getItem("token")
}
});
function Comp() {
const logoutButtonClick = () => {
localStorage.removeItem("token");
}
}
localStorage
로컬 스토리지는 브라우저 내에 데이터를 저장한다.
브라우저마다 스토리지가 다르고, 다른 컴퓨터에서 같은 브라우저를 사용해도 다른 스토리지이다.
데이터가 공유되야 하거나 영구적으로 저장하려면 DB나 클라우드 플랫폼을 사용해야 한다.
이때 저장되는 값들은 무조건 string이다. number를 저장해도 string으로 저장된다!
localStorage.setItem('email', 'example@email.com');
//undefined
localStorage.getItem('email')
'example@email.com'
출처 및 참고)
[자바스크립트] 웹 스토리지 (localStorage, sessionStorage) 사용법
HTTP/1.1 200 OK
Content-Type: application/json
{
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6Ik~~"
}
{
user_id : 1
}
위의 인증 절차로 access token을 생성
→ access token에는 유저 정보를 확인할 수 있는 데이터가 들어있어야 한다.(user_id 등)
유저가 request를 보낼 때는 access token을 첨부해서 보낸다.
유저가 첨부한 access token을 복호화한다.
복호화된 데이터를 가지고 데이터베이스에서 해당 유저의 권한을 확인한다.
권한이 충분하면 응답을 보낸다.
권한이 없다면 Unauthorized Response(401)등의 에러 코드를 보낸다.
POSTMAN으로 API를 호출해서 회원가입과 로그인을 한다는 가정하에 실습을 했다.
회원가입을 위해 필요한 데이터를 body에 담아 서버에 보내면 데이터베이스에 회원가입한 정보가 저장된다. 직접 해보니까 꽤 재미있었다.
빨리 리액트에 익숙해져서 로그인과 회원가입도 뚝딱이었으면 좋겠다🙂