django-allauth で、ソーシャルアカウントプロバイダーを決め打ちしてログインビュー・リダイレクトビューを返す (AWS Cognitoを使う時など)
Django
2024-12-14 04:46 (14 months ago)
django-allauth を使っており、バックエンドのソーシャルアカウントを URL で指定しないログインビューを作る方法。
バックエンドに AWS Cognito 1つしか使わない場合などに有用だと思います。
ログインビュー
ログインボタンを表示する場合
from allauth.socialaccount.providers.amazon_cognito.views import oauth2_login
async def login_view(request):
return oauth2_login(request)
ログインURLにリダイレクトするビュー
Cognito のマネージドログインURLに飛ばす場合
settings
SOCIALACCOUNT_LOGIN_ON_GET = True
from allauth.socialaccount.providers.amazon_cognito.views import oauth2_login
async def login_view(request):
return oauth2_login(request)
もしくは
from allauth.socialaccount.providers.amazon_cognito.views import oauth2_login AmazonCognitoOAuth2Adapter
def login_redirect_view(request):
adapter = AmazonCognitoOAuth2Adapter(request)
provider = adapter.get_provider()
return provider.redirect_from_request(request)
その他 allauth で設定しておいたほうがいいもの
settings
LOGIN_REDIRECT_URL = '/'
LOGOUT_REDIRECT_URL = 'https://<your-cognito-managed-url>/logout?client_id=<cognito-client-id>>&logout_uri=https%3A%2F%2F<your-webapp>' # NOQA
ACCOUNT_EMAIL_VERIFICATION = 'none'
SOCIALACCOUNT_ONLY = True
まだ評価がありません
著者は、アプリケーション開発会社 Cyberneura を運営しています。
開発相談をお待ちしています。
開発相談をお待ちしています。