Django

[Django] Swagger header에 JWT 추가하기

torimuk 2022. 4. 29. 11:12

Problem


Swagger 에서 모든 요청의 헤더에 JWT 토큰 값을 넣고자 한다.

 

Solution


해결법은 간단하다. settings.py에 SWAGGER_SETTINGS를 추가하면 된다.

SWAGGER_SETTINGS = {
    'SECURITY_DEFINITIONS': {
        'Access_Token': {
            'type': 'apiKey',		# 타입
            'name': 'Access-Token',	# 이름
            'in': 'header',			# 어디에 추가할 것인지, 헤더이므로 header
            'description': 'Authorization',	# 설명
        }
    },
}

 

그 다음 Swagger에서 Authorize를 클릭하면 다음과 같이 출력된다.

 

Authorize 클릭 시 나타나는 modal

해당 Value 값에 JWT 토큰 값을 입력하고 Authorize 한 뒤, 테스트를 진행하면 된다.

주의할 점은, Name에 언더바(_)가 들어가면 안된다.

Header에 입력된 언더바는 무시되며, 하이픈은 언더바로 표기된다.

ex) Access_Token -> X

Access-Token -> HTTP_ACCESS_TOKEN