Files
notifications-admin/app/main/views/sign_out.py

41 lines
1.2 KiB
Python
Raw Normal View History

2023-10-20 08:48:04 -07:00
import os
import requests
2024-07-11 09:38:32 -07:00
from flask import current_app, redirect, session, url_for
from flask_login import current_user
2016-01-06 16:40:38 +00:00
from app.main import main
2023-11-14 07:11:40 -08:00
2023-10-20 08:48:04 -07:00
def _sign_out_at_login_dot_gov():
2023-11-22 08:28:07 -08:00
base_url = os.getenv("LOGIN_DOT_GOV_BASE_LOGOUT_URL")
2023-10-31 12:22:06 -07:00
client_id = f"client_id={os.getenv('LOGIN_DOT_GOV_CLIENT_ID')}"
2023-11-22 08:28:07 -08:00
post_logout_redirect_uri = (
f"post_logout_redirect_uri={os.getenv('LOGIN_DOT_GOV_SIGNOUT_REDIRECT')}"
)
2023-10-20 08:48:04 -07:00
2023-10-31 12:22:06 -07:00
url = f"{base_url}{client_id}&{post_logout_redirect_uri}"
2023-10-20 09:34:39 -07:00
current_app.logger.info(f"url={url}")
2023-11-14 07:11:40 -08:00
response = requests.post(url)
# response = requests.post(url)
2023-10-20 09:34:39 -07:00
current_app.logger.info(f"login.gov response: {response.text}")
2023-10-20 08:48:04 -07:00
2023-10-20 09:34:39 -07:00
@main.route("/sign-out", methods=(["GET", "POST"]))
2016-01-06 16:40:38 +00:00
def sign_out():
2024-07-11 09:38:32 -07:00
if current_user.is_authenticated:
2024-07-11 09:38:32 -07:00
current_user.deactivate()
session.clear()
2023-11-02 14:10:22 -07:00
current_user.sign_out()
2024-07-11 09:38:32 -07:00
session.permanent = False
2023-11-29 10:24:09 -08:00
login_dot_gov_logout_url = os.getenv("LOGIN_DOT_GOV_LOGOUT_URL")
if login_dot_gov_logout_url:
2024-07-11 09:38:32 -07:00
current_app.config["SESSION_PERMANENT"] = False
2023-11-29 10:24:09 -08:00
return redirect(login_dot_gov_logout_url)
return redirect(url_for("main.index"))