feat: support login with multiple cie account

This commit is contained in:
gabdevele
2026-06-18 19:40:13 +02:00 Unverified
parent 682eb312f5
commit 6ee223f1ee
@@ -29,6 +29,15 @@ def _visione_redirect_uri(request):
return request.session.get("visione_frontend_redirect_uri")
def _visione_session_snapshot(request):
keys = (
"visione_state",
"visione_frontend_redirect_uri",
"visione_provider_issuer",
)
return {key: request.session.get(key) for key in keys if key in request.session}
def _visione_error_redirect(request, error, error_description="", status=302):
frontend_redirect_uri = _visione_redirect_uri(request)
if frontend_redirect_uri:
@@ -324,7 +333,9 @@ class VisioneRpCallbackView(SpidCieOidcRpCallbackView):
request.session["rt_jti"] = decoded_refresh_token["jti"]
from django.contrib.auth import login
visione_session = _visione_session_snapshot(request)
login(request, user)
request.session.update(visione_session)
request.session["oidc_rp_user_attrs"] = user_attrs
request.session["at_expiration"] = decoded_access_token["exp"] - iat_now()
request.session["at_jti"] = decoded_access_token["jti"]