20220214_TIL : 로그인 절차
브라우저에서 로그인이 이루어지기 위해 프론트엔드, 벡엔드에서 요청이 이루어졌을때 발생하는 상황에 대해 배웠다.
로그인을 위해 회원정보가 입력되면 벡엔드로 정보가 전송이 되고 이때 유저의 정보가 DB에 저장되어있는 정보와 동일할 경우(=인증 과정) 문자열 Access Token을 전달받는다. 이 토큰으로 회원 정보에 대해 판별하고 프로필 수정, 게시물 등록 등의 절차가 진행 되는 것이다.
const uploadLink = createUploadLink({
uri: "http://backend05.codebootcamp.co.kr/graphql",
headers: { Authorization: `Bearer ${accessToken}` },
// 로그인 시 받아온 토큰 자리(graph-ql)
});
AccessToken이 유효하다면 사용자가 로그인되었다고 판단하고 계정이 필요한 요청에 대한 처리를 진행하게 된다.
개발자 모드에서 Request Headers 부분을 확인해보면, authorization 의 이름으로 AccessToken 이 담겨서 전송
벡엔드에서는 회원 정보에 대해서 DB에 온전히 저장해둘경우 개인정보 유출, 해킹 등 보안문제에 취약하기 때문에 회원 정보를 객체 형태로 암호화하고 브라우저에서 전송받은 토큰을 다시 복호화해서 로그인된 유저 정보 확인이 가능하다.
이때 토큰을 만들기 위해 사용하는 표준 방식을 JWT (JSON Web Token)
.
JWT 문제점은 누구나 토큰을 해독할 수 있기 때문에 회원임을 알 수 있는 아이디와 짧은 범위의 로그인 만료 시점 정도만 저장한다.
DB에서 사용자 정보를 저장할 때 개인 정보 유출이나 해킹 시에도 원본 데이터에 대한 보안을 위해 서버 관리자도 확인할 수 없도록 hasing
처리가 필요하다.
👩🏻💻 오늘의 TIL ...
앞으로 등록 회원만 가능한 기능을 구현하는 등 오늘 배운 개념을 확실히 정리해 둘 필요가 있을 것 같다. 전체적인 개념 정리를 꼭 해두자.
Author And Source
이 문제에 관하여(20220214_TIL : 로그인 절차), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kjh2868/20220214TIL-로그인-절차저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)