인증&인가
1) 인증 (Authentication) : 유저의 identification을 확인하는 절차로, 유저의 아이디/비번을 확인하는 작업
2) 인가 (Authorization) : 유저가 특정 request를 수행할 수 있는 권한을 가지고 있는지 확인하는 작업
일반적인 로그인 절차
1) 유저 아이디/비번 생성
2) 유저 비번 암호화하여 DB에 저장
3) 유저 로그인 -> 아이디/비번 입력
4) 유저가 입력한 비밀번호를 암호화 한 후 DB에 저장된 유저 비밀번호와 비교
5) 일치하면 로그인 성공
6) 로그인 성공 후 access token을 클라이언트에게 전송
7) 유저의 첫 번째 로그인 성공 후 access token을 첨부하여 request에 전달함으로서 매번 로그인을 안해도 되도록 설정
암호화 방식
단방향 해쉬 함수
단방향 해쉬 함수 + Salting + Key Stretching
JWT (JSON Web Token)
유저가 로그인에 성공한 후에는 access token을 발급받고, 이후의 로그인 시도 때는 해당 토큰을 request에 첨부하여 보내게 된다.
POST /auth HTTP/1.1
Host: localhost:5000
Content-Type: application/json
{
"username": "joe",
"password": "pass"
}
리액트로 로그인 기능 구현
fetch("api주소", {
method: "POST",
body: JSON.stringify({
email: this.state.id,
password: this.state.pw,
}),
})
.then((response) => response.json())
.then((result) => console.log("결과: ", result));
1) method : POST
2) 요청의 body 내 데이터에 request를 보내고자 하는 데이터를 첨부하여 전송
3) 통신의 결과 response를 then함수를 통해 처리
'프로그래밍' 카테고리의 다른 글
wecode +31 (9/17) (0) | 2020.09.17 |
---|---|
wecode +30 (9/16) (0) | 2020.09.16 |
code kata (9/11) (0) | 2020.09.12 |
wecode +25 (9/11) (0) | 2020.09.11 |
[westagram] 인스타그램 클론 팀프로젝트 후기 (2) | 2020.09.11 |
댓글