Move the test for requires_step_up_auth up above the user authentication in login_callback, imlement needs_identity_verification in user model

This commit is contained in:
Rachid Mrad 2023-12-06 18:16:50 -05:00
parent f6a288f511
commit 67d20a6296
No known key found for this signature in database
GPG key ID: EF38E4CEC4A8F3CF
2 changed files with 44 additions and 7 deletions

View file

@ -69,15 +69,16 @@ def login_callback(request):
try:
query = parse_qs(request.GET.urlencode())
userinfo = CLIENT.callback(query, request.session)
# test for need for identity verification and if it is satisfied
# if not satisfied, redirect user to login with stepped up acr_value
if requires_step_up_auth(userinfo):
# add acr_value to request.session
request.session["acr_value"] = CLIENT.get_step_up_acr_value()
return CLIENT.create_authn_request(request.session)
user = authenticate(request=request, **userinfo)
if user:
# test for need for identity verification and if it is satisfied
# if not satisfied, redirect user to login with stepped up acr_value
if requires_step_up_auth(userinfo):
# add acr_value to request.session
request.session["acr_value"] = CLIENT.get_step_up_acr_value()
return CLIENT.create_authn_request(request.session)
login(request, user)
logger.info("Successfully logged in user %s" % user)
return redirect(request.session.get("next", "/"))