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)
Cognito のマネージドログインURLに飛ばす場合
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)
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
コメント