본문 바로가기

인증

[GraphQL] 3. GraphQL에서의 인증 // Authentication in GraphQL 1. GraphQL에서의 인증 방식GraphQL은 플랫폼 독립적이고 기존의 REST API와는 완전히 다르기 때문에 GraphQL에서의 인증은 큰 문제라고 생각할수도 있지만 인증은 그렇게 어렵지 않다. 기존의 JWT(Json Web Token)을 충분히 이용 가능하다JWT 토큰을 전달하는 위치가 헤더에서 쿼리나 뮤테이션의 인자로 바뀌었을 뿐이다. 우리가 GraphQL 서버를 만들떄 사용하는 Flask와 Graphene에서 인증을 처리하는 것도 기존 Flask에서 Flask-JWT-Extended나 Flask-JWT-Simple을 사용했던 것처럼 Flask-GraphQL-Auth를 사용하면 그저 쿼리 리솔버나 뮤테이션에 인증 데코레이터를 적용해 우리가 익숙하게 사용하던 JWT(Json Web Token)를.. 더보기
[JWT] 토큰 기반 인증과 JSON Web Token 토큰 기반 인증이란? 기존의 세션 기반 인증과는 다르게 서버가 사인한 토큰을 이용하여 인증을 수행하는 방식이다. 기존의 세션 기반 인증은 세션을 유지하면서 세션을 DB에 저장한다면 DB 쿼리가 발생하고, 메모리에 저장한다면 메모리가 부족해 질 수 있는 등 서버에 부하가 발생할 가능성이 높지만 토큰 기반 인증은 서버가 전달받은 토큰을 검증만 하면 되기 때문에 stateless 하게 서버의 상태를 유지시켜 서버의 부담을 줄여주고 서비스의 확장성을 높일 수 있다. 토큰 방식의 문제 세션에 비해서 토큰이 장점만 가지고 있는 것 같지만 단점도 존재한다. stateless한 토큰의 특성 때문에 토큰을 강제로 만료시킬 수 없는 문제를 가지고 있다. 이 점 때문에 나는 다음과 같은 두가지 문제에 대해 고민해 보았다. .. 더보기