Upload files to "auth"
Add auth to initial commit
This commit is contained in:
parent
dd77c09b60
commit
9727d18345
4
auth/__init__.py
Normal file
4
auth/__init__.py
Normal file
@ -0,0 +1,4 @@
|
||||
from flask_login import LoginManager
|
||||
|
||||
login = LoginManager()
|
||||
|
||||
20
auth/jwt_controller.py
Normal file
20
auth/jwt_controller.py
Normal 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
19
auth/sessions.py
Normal 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)
|
||||
Loading…
Reference in New Issue
Block a user