feat: support login with multiple cie account
This commit is contained in:
@@ -29,6 +29,15 @@ def _visione_redirect_uri(request):
|
|||||||
return request.session.get("visione_frontend_redirect_uri")
|
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):
|
def _visione_error_redirect(request, error, error_description="", status=302):
|
||||||
frontend_redirect_uri = _visione_redirect_uri(request)
|
frontend_redirect_uri = _visione_redirect_uri(request)
|
||||||
if frontend_redirect_uri:
|
if frontend_redirect_uri:
|
||||||
@@ -324,7 +333,9 @@ class VisioneRpCallbackView(SpidCieOidcRpCallbackView):
|
|||||||
request.session["rt_jti"] = decoded_refresh_token["jti"]
|
request.session["rt_jti"] = decoded_refresh_token["jti"]
|
||||||
|
|
||||||
from django.contrib.auth import login
|
from django.contrib.auth import login
|
||||||
|
visione_session = _visione_session_snapshot(request)
|
||||||
login(request, user)
|
login(request, user)
|
||||||
|
request.session.update(visione_session)
|
||||||
request.session["oidc_rp_user_attrs"] = user_attrs
|
request.session["oidc_rp_user_attrs"] = user_attrs
|
||||||
request.session["at_expiration"] = decoded_access_token["exp"] - iat_now()
|
request.session["at_expiration"] = decoded_access_token["exp"] - iat_now()
|
||||||
request.session["at_jti"] = decoded_access_token["jti"]
|
request.session["at_jti"] = decoded_access_token["jti"]
|
||||||
|
|||||||
Reference in New Issue
Block a user