Upload files to "auth"

Add auth to initial commit
This commit is contained in:
chris 2025-03-10 23:12:20 +00:00
parent dd77c09b60
commit 9727d18345
3 changed files with 43 additions and 0 deletions

4
auth/__init__.py Normal file
View File

@ -0,0 +1,4 @@
from flask_login import LoginManager
login = LoginManager()

20
auth/jwt_controller.py Normal file
View File

@ -0,0 +1,20 @@
from datetime import timedelta
import redis
from flask_jwt_extended import JWTManager
jwt = JWTManager()
redis_jwt_blocklist = redis.StrictRedis(host='redis', port=6379, password='ijfijfijf++', db=0, decode_responses=True)
@jwt.token_in_blocklist_loader
def check_if_token_revoked(jwt_header, jwt_payload):
jti = jwt_payload['jti']
token_in_redis = redis_jwt_blocklist.get(jti)
return token_in_redis is not None
def revoke_token(jti):
redis_jwt_blocklist.set(jti, "", ex=timedelta(hours=2))

19
auth/sessions.py Normal file
View File

@ -0,0 +1,19 @@
from flask.sessions import SecureCookieSessionInterface
from flask import g
from flask_login import user_loaded_from_request
@user_loaded_from_request.connect
def user_loaded_from_request(app, user=None):
g.login_via_request = True
class JWTSessionInterface(SecureCookieSessionInterface):
"""This is a custom session interface that will turn off cookies for flask requests so that JWT tokens can be used instead."""
def should_set_cookie(self, app, session):
return False
def save_session(self, app, session, response):
if g.get('login_via_request'):
return
return super(JWTSessionInterface, self).save_session(app, session, response)