본문 바로가기
프로그래밍

wecode 세션 : 인증/인가와 로그인

by Youngbin Kwon 2020. 9. 12.

 

인증&인가

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

댓글