Прямо сейчас у меня есть API, который находится на сервере, который также выдает токены доступа. API создан из Django Rest Framework и защищен OAuth2TokenAuthentication от django-oauth-toolkit, в то время как это работает нормально, но аутентификация выполняется с использованием токена, хранящегося локально.Структура Django rest OAuth2Authentication на сервере ресурсов на сервере Auth
class OAuth2Authentication(BaseAuthentication):
"""
OAuth 2 authentication backend using `django-oauth-toolkit`
"""
www_authenticate_realm = 'api'
def authenticate(self, request):
"""
Returns two-tuple of (user, token) if authentication succeeds, or None otherwise.
"""
oauthlib_core = get_oauthlib_core()
valid, r = oauthlib_core.verify_request(request, scopes=[])
if valid:
return r.user, r.access_token
else:
return None
def authenticate_header(self, request):
"""
Bearer is the only finalized type currently
"""
return 'Bearer realm="{}"'.format(self.www_authenticate_realm)
Я хотел бы разделить сервер на 2 сервера, проверка подлинности сервера и ресурсов сервера, так что сервис, на котором размещается API не нужно иметь символический механизм хранения. Как видно из приведенного выше кода, r.access_token является образцом экземпляра AccessToken.
Я не уверен, что это лучший способ, чтобы изменить проверку подлинности API для проверки на сервер удаленно (возможно, есть письменный пакет уже?)
Я был поиск в Интернете о лексемах валидаций, таких как this one, хотя он предлагает некоторые идеи, но, похоже, не достаточно определен для моей проблемы.