DJANGO

Django OAuth Toolkit에서 액세스 토큰을 검증

0hee 2024. 2. 14. 17:44

Django OAuth Toolkit에서 액세스 토큰을 검증하는 방법은 다음과 같습니다:

1. 클라이언트가 서버에 요청을 보낼 때 `Authorization` 헤더에 액세스 토큰을 포함해야 합니다. 헤더의 형식은 `Authorization: Bearer {access_token}`입니다.

2. 서버는 요청을 받을 때 `Authorization` 헤더를 확인하고, 헤더에서 액세스 토큰을 추출합니다.

3. 서버는 추출한 액세스 토큰을 `oauth2_provider_accesstoken` 테이블에서 검색합니다. 토큰이 테이블에 존재하면, 토큰이 유효한 것으로 간주합니다.

4. 서버는 토큰의 `expires` 필드를 확인하여 토큰이 만료되었는지 확인합니다. 토큰이 만료되었다면, 서버는 요청을 거부합니다.

5. 서버는 토큰의 `scope` 필드를 확인하여 토큰이 요청한 작업을 수행할 수 있는 권한이 있는지 확인합니다. 토큰이 필요한 권한을 가지고 있지 않다면, 서버는 요청을 거부합니다.

이러한 검증 과정은 Django OAuth Toolkit의 미들웨어와 데코레이터를 사용하여 자동화할 수 있습니다. 예를 들어, `oauth2_provider.decorators.protected_resource()` 데코레이터를 사용하여 특정 뷰가 유효한 액세스 토큰을 가진 클라이언트만 접근할 수 있도록 할 수 있습니다.