refresh Token

최권준·2021년 10월 19일

AccessToken 발급 과정

  1. 브라우저에서 로그인 요청
  2. 백엔드에서 DB에 Token 요청
  3. DB에서 Token 발급
  4. 백엔드에서 브라우저로 accessToken 발급하면서 refreshToken 같이 발급
    refreshToken은 쿠키에 저장되고, accessToken처럼 가져와서 쓸 수 없다.
    .
    .
    .
  5. accessToken이 만료되면 unAuthenticated라는 에러가 발생한다.
  6. unAuthenticated에러가 발생하면 refreshToken을 이용해서 restoreToken을 요청
  7. refreshToken이 만료가 되지않았다면 다시 accessToken을 발급해준다.
  8. 재발급된 accessToken으로 기존에 요청에 실패한 쿼리를 실행시켜준다.

app.js에서 ApolloProvider을 사용해서 useMutation, useQuery등을 사용할수 있었는데
app.js에서는 useMutation, useQuery을 사용할수 없기때문에 graphQL-request 라이브러리를 이용한다.

yarn add graphql-request

  • graphQLErrors : 발생한 에러
  • operation : 에러가 발생한 쿼리
  • foward : 이후에 실행할 쿼리

    import {GraphQLClient} from 'graphql-request'

  • credentials: "true" // 쿠키에 내용추가

0개의 댓글