33 lines
1.1 KiB
Python
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'],
|
|
)
|
|
|