#django #django-allauth
#django #django-allauth
Вопрос:
Мне нужно переопределить метод сохранения пользователя в моем пользовательском OAuth2Adapter. Как я могу это сделать? Мне нужно сохранить некоторые специальные поля в моей пользовательской модели
auth_provider/views.py
import requests
from allauth.socialaccount.providers.oauth2.views import (
OAuth2Adapter,
OAuth2CallbackView,
OAuth2LoginView,
)
from config.settings.base import EXAMPLE_URLS
from app.users.auth_provider.provider import ExampleProvider
class ExampleAdapter(OAuth2Adapter):
provider_id = ExampleProvider.id
access_token_url = EXAMPLE_URLS["web"] "oauth/token"
authorize_url = EXAMPLE_URLS["web"] "oauth/authorize"
profile_url = EXAMPLE_URLS["api"] "me"
def complete_login(self, request, app, access_token, **kwargs):
headers = {"Authorization": "Bearer %s" % access_token}
extra_data = requests.get(self.profile_url, headers=headers)
return self.get_provider().sociallogin_from_response(request, extra_data.json())
oauth2_login = OAuth2LoginView.adapter_view(ExampleAdapter)
oauth2_callback = OAuth2CallbackView.adapter_view(ExampleAdapter)