Strawberry-Django-JWT는 Strawberry GraphQL API에서 JWT 기반 인증을 사용할 수 있도록 하는 확장입니다.
GraphQL API 보안 강화
JWT는 GraphQL API에 대한 접근을 보안 강화하는 데 중요한 역할을 합니다. 사용자가 인증된 상태에서만 특정 쿼리나 뮤테이션을 실행할 수 있도록 함으로써, 민감한 데이터의 무단 접근을 방지합니다.
효율적인 인증 관리
Strawberry-Django-JWT는 인증 관련 GraphQL 뮤테이션(예: 로그인, 토큰 갱신)을 제공함으로써, 개발자가 별도의 인증 로직을 작성할 필요를 줄여줍니다. 이는 개발 시간을 단축하고 코드의 일관성을 유지하는 데 도움이 됩니다.
상태 비저장 인증
JWT 기반 인증은 서버가 각 요청마다 사용자의 인증 상태를 저장할 필요 없이 독립적으로 인증을 처리할 수 있도록 합니다. 이는 서버의 부하를 줄이고 확장성을 증가시킵니다.
pip install strawberry-django-jwt
import strawberry
from strawberry_django_jwt.mutations import ObtainJSONWebToken
@strawberry.type
class Mutation:
token_auth = ObtainJSONWebToken.Field()
schema = strawberry.Schema(query=Query, mutation=Mutation)
사용:
클라이언트는
mutation { tokenAuth(username: "user", password: "pass") { token } }
와 같은 GraphQL 뮤테이션을 사용하여 JWT를 발급받을 수 있습니다.
발급된 토큰은 이후의 GraphQL 요청에서 인증에 사용됩니다.