Switch to UniAuth.auth
This commit is contained in:
parent
5f0d2e884f
commit
fc36647d49
2 changed files with 2 additions and 38 deletions
|
|
@ -1,36 +0,0 @@
|
|||
"""Authentication via UniAuth."""
|
||||
|
||||
import flask
|
||||
import werkzeug
|
||||
from itsdangerous.url_safe import URLSafeTimedSerializer
|
||||
|
||||
max_age = 60 * 60 * 24 * 90
|
||||
|
||||
|
||||
def verify_auth_token(token: str) -> str | None:
|
||||
"""Verify the authentication token."""
|
||||
serializer = URLSafeTimedSerializer(flask.current_app.config["SECRET_KEY"])
|
||||
try:
|
||||
username = serializer.loads(token, salt="auth", max_age=max_age)
|
||||
except Exception:
|
||||
return None
|
||||
|
||||
assert isinstance(username, str)
|
||||
return username
|
||||
|
||||
|
||||
def require_authentication() -> werkzeug.Response | None:
|
||||
"""Require authentication and redirect with return URL."""
|
||||
if not flask.current_app.config.get("REQUIRE_AUTH"):
|
||||
return None
|
||||
|
||||
token = flask.request.cookies.get("auth_token")
|
||||
if token and verify_auth_token(token):
|
||||
return None
|
||||
|
||||
# Construct the redirect URL with the original URL as a parameter
|
||||
return flask.redirect(
|
||||
flask.current_app.config["UNIAUTH_URL"]
|
||||
+ "/login?next="
|
||||
+ werkzeug.urls.url_quote(flask.request.url)
|
||||
)
|
||||
Loading…
Add table
Add a link
Reference in a new issue