오늘의 목표
1. 리프레시 토큰
2. graphql이 사실은 rest api였다?
cookie(refreshToken)
state(accessToken)
accessToken만료후
api요청(ex createProduct) 하면 인가단계에서 토큰만료가 나옴
그러면 브라우저에 error를 반환함(UNAUTHENTICATED)
그러면 restoreAccessToken으로 접근하고 JWT가 다시 반환되면 accessToken이 새로 생성됨
이후에 실패했던 api(ex createProduct)요청을 다시 함
그러면 이제 accessToken이 발급이 되어있어서 성공이 됨
즉
1. on error => UNAUTHENTICATED
2. restoreAccessToken
3. 방금실패한 api요청 재시도
이 과정이 너무 빠르기 때문에 silentAuth라고 부름
개빠름
그러면
login logout restoreAccessToken을 따로 백엔드로 빼면?
즉 로그인 관련 백엔드1, 나머지 백엔드2
이런 백엔드1을 AuthService라고 함
인증용
백엔드2를 resorceService라고 함
인가용
OpenAuthentication이 있음
이게 뭐냐? 구글 카카오 로그인 같은것
즉 AuthService를 제공하는 것
백엔드1을 따로 제공만하고 나머지는 인가만 해주고
소셜로그인이라고 함
MicroService -MSA
AuthService따로
BoardService따로
ProductService따로 만들고 db도 각각 만들어둠
이게 요즘 백엔드 대세임
예전에 한 번에 다 해놓으면 홈페이지 접속이 안됬으나
이렇게 나누는 순간 하나가 에러나면 그것만 작동이 안되고 나머지는 정상작동이 됨
apollo도 restApi이기 때문에 axios로 요청이 가능하다
게시글 조회
axios.get(API주소)
게시글 등록
axios.post(API주소, {데이터})