Skip to content

Instantly share code, notes, and snippets.

@oleg-agapov
Created May 8, 2018 13:13
Show Gist options
  • Save oleg-agapov/8f2b0178c72db9bdaba66adcfe5df2a6 to your computer and use it in GitHub Desktop.
Save oleg-agapov/8f2b0178c72db9bdaba66adcfe5df2a6 to your computer and use it in GitHub Desktop.
# app/auth/utils.py
from flask_jwt_extended import decode_token
from datetime import datetime
from app.models import TokenModel
from app import db
def add_token_to_db(encoded_token):
decoded_token = decode_token(encoded_token)
jti = decoded_token['jti']
token_type = decoded_token['type']
user_identity = decoded_token['identity']
expires = datetime.fromtimestamp(decoded_token['exp'])
db_token = TokenModel(
jti = jti,
token_type = token_type,
user_identity = user_identity,
expires = expires,
revoked = False
)
db.session.add(db_token)
db.session.commit()
def is_token_revoked(decoded_token):
jti = decoded_token['jti']
try:
token = TokenModel.query.filter_by(jti=jti).one()
return token.revoked
except:
return True
def revoke_token(decoded_token):
try:
token = TokenModel.query.filter_by(jti=decoded_token['jti'], user_identity=decoded_token['identity']).one()
token.revoked = True
db.session.commit()
except:
return False
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment