오늘의 목표
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주소, {데이터})

