from django.contrib.auth import get_user_model from oauth2_provider.contrib.rest_framework import OAuth2Authentication from oauth2_provider.oauth2_backends import get_oauthlib_core class OAuth2AuthenticationWithUser(OAuth2Authentication): """ OAuth 2 authentication backend using `django-oauth-toolkit` """ www_authenticate_realm = "api" user = get_user_model().objects.first() 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 self.user, r.access_token request.oauth2_error = getattr(r, "oauth2_error", {}) return None