skillbox/server/oauth/oauth_client.py

33 lines
1.1 KiB
Python

from authlib.integrations.django_client import OAuth
from django.conf import settings
from oauth.models import OAuth2Token
# https://docs.authlib.org/en/latest/client/frameworks.html#frameworks-clients
def fetch_token(name, request):
try:
token = OAuth2Token.objects.get(
user=request.user
)
return token.to_token()
except (OAuth2Token.DoesNotExist, TypeError):
return None
oauth = OAuth(fetch_token=fetch_token)
oauth.register(
name='hep',
client_id=settings.AUTHLIB_OAUTH_CLIENTS['hep']['client_id'],
client_secret=settings.AUTHLIB_OAUTH_CLIENTS['hep']['client_secret'],
request_token_url=settings.AUTHLIB_OAUTH_CLIENTS['hep']['request_token_url'],
request_token_params=None,
access_token_url=settings.AUTHLIB_OAUTH_CLIENTS['hep']['access_token_url'],
access_token_params=None,
authorize_url=settings.AUTHLIB_OAUTH_CLIENTS['hep']['authorize_url'],
authorize_params=None,
api_base_url=settings.AUTHLIB_OAUTH_CLIENTS['hep']['api_base_url'],
client_kwargs=settings.AUTHLIB_OAUTH_CLIENTS['hep']['client_kwargs'],
)