Source code for flask_jwt_simple.utils

import jwt
from flask import current_app

try:
    from flask import _app_ctx_stack as ctx_stack
except ImportError:  # pragma: no cover
    from flask import _request_ctx_stack as ctx_stack

from flask_jwt_simple.config import config


def _get_jwt_manager():
    try:
        return current_app.extensions['flask-jwt-simple']
    except KeyError:  # pragma: no cover
        raise RuntimeError("You must initialize a JWTManager with this flask "
                           "application before using this method")


[docs]def get_jwt(): """ Returns the python dictionary which has all of the data in this JWT. If no JWT is currently present, an empty dict is returned """ return getattr(ctx_stack.top, 'jwt', {})
[docs]def get_jwt_identity(): """ Returns the identity of the JWT in this context. If no JWT is present, None is returned. """ return get_jwt().get(config.identity_claim, None)
[docs]def decode_jwt(encoded_token): """ Returns the decoded token from an encoded one. This does all the checks to insure that the decoded token is valid before returning it. """ secret = config.decode_key algorithm = config.algorithm audience = config.audience return jwt.decode(encoded_token, secret, algorithms=[algorithm], audience=audience)
[docs]def create_jwt(identity): """ Creates a new JWT. :param identity: The identity of this token. This can be anything that is json serializable. :return: A utf-8 encoded jwt. """ jwt_manager = _get_jwt_manager() return jwt_manager._create_jwt(identity)