From 778dcd1e1dfeaa9b5c01683809d80abdaa10e552 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Thu, 12 Mar 2020 12:37:17 +0100 Subject: [PATCH] auth_fc: set session to expire at browser close on login (#40479) --- src/authentic2_auth_fc/views.py | 2 ++ tests/auth_fc/test_auth_fc.py | 1 + 2 files changed, 3 insertions(+) diff --git a/src/authentic2_auth_fc/views.py b/src/authentic2_auth_fc/views.py index 7d4039c4..eae16585 100644 --- a/src/authentic2_auth_fc/views.py +++ b/src/authentic2_auth_fc/views.py @@ -443,6 +443,8 @@ class LoginOrLinkView(PopupViewMixin, FcOAuthSessionViewMixin, View): return self.redirect(request) if user: a2_utils.login(request, user, 'france-connect', service_slug=self.service_slug) + # set session expiration policy to EXPIRE_AT_BROWSER_CLOSE + request.session.set_expiry(0) self.fc_account = models.FcAccount.objects.get(sub=self.sub, user=user) self.fc_account.token = json.dumps(self.token) self.fc_account.save(update_fields=['token']) diff --git a/tests/auth_fc/test_auth_fc.py b/tests/auth_fc/test_auth_fc.py index f9d15b6c..054c129b 100644 --- a/tests/auth_fc/test_auth_fc.py +++ b/tests/auth_fc/test_auth_fc.py @@ -148,6 +148,7 @@ def test_login_simple(app, fc_settings, caplog, hooks, exp): assert hooks.event[1]['kwargs']['service'] == 'portail' # we must be connected assert app.session['_auth_user_id'] + assert app.session.get_expire_at_browser_close() assert models.FcAccount.objects.count() == 1 # test unlink cancel case -- 2.24.0