django-allauth で、ソーシャルアカウントプロバイダーを決め打ちしてログインビュー・リダイレクトビューを返す (AWS Cognitoを使う時など)
Django
2024-12-14 04:46 (22ヶ月前)
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
評価をお願いします (会員登録・ログイン不要)
まだ評価がありません
関連記事
Django を 5.1 にアップグレードしたら、管理サイトの Inline で、プライマリーキーが表示される場所に `{'name': 'id', 'label': 'ID', 'help_text': '', 'field': 'id', 'is_hidden': True}` のような文字列が表示される場合の対応
Django5にして依存ライブラリも更新したら、メール送信で SSL: CERTIFICATE_VERIFY_FAILED エラーが出るようになった
Django の ユニットテストの assertEqual の引数の first, second は実際は expected, actual
pipenv install で AttributeError: module 'pkgutil' has no attribute 'ImpImporter'. Did you mean: 'zipimporter'? が出た → まずは pipenv の python バージョンを確認
著者は、アプリケーション開発会社 Cyberneura を運営しています。
開発相談をお待ちしています。
開発相談をお待ちしています。