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