Beispiel #1
0
def get_token_info():
    """获取令牌信息"""
    form = TokenForm().validate_for_api()
    s = Serializer(current_app.config['SECRET_KEY'])
    try:
        data = s.loads(form.token.data, return_header=True)
    except SignatureExpired:
        raise AuthFailed(msg='token is expired', error_code=1003)
    except BadSignature:
        raise AuthFailed(msg='token is invalid', error_code=1002)

    r = {
        'uid':
        data[0]['uid'],
        'nickname':
        data[0]['nickname'],
        'scope':
        data[0]['scope'],
        'create_at':
        time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(data[1]['iat'])),
        'expire_in':
        datetime.datetime.utcfromtimestamp(
            data[1]['exp']).strftime('%Y-%m-%d %H:%M:%S')
    }
    return restful_json(r)
Beispiel #2
0
def get_token_info():
    # 获取令牌信息
    form = TokenForm().validate_parameter_for_api()
    s = Serializer(current_app.config['SECRET_KEY'])

    try:
        data = s.loads(form.token.data, return_header=True)
    except BadSignature:
        raise AuthFailedException(msg='token is invalid', error_code=1002)
    except SignatureExpired:
        raise AuthFailedException(msg='token is expired', error_code=1003)

    create_time = time.strftime('%Y/%m/%d %H:%M:%S',
                                time.localtime(data[1]['iat']))
    expire_time = time.strftime('%Y/%m/%d %H:%M:%S',
                                time.localtime(data[1]['exp']))

    r = {
        'uid': data[0]['uid'],
        'type': data[0]['type'],
        'scope': data[0]['scope'],
        'create_at': create_time,
        'expire_in': expire_time
    }

    return jsonify(r)
Beispiel #3
0
def verify_token(token):
    d = {'token': token}
    form = TokenForm(data=d)
    s = Serializer(SECRET_KEY)

    try:
        data = s.loads(form.token.data)
    except SignatureExpired:
        raise AuthorizationException(msg='Token已过期')
    except BadSignature:
        raise AuthorizationException(msg='非法Token')
    user = User.query.filter_by(id=data["uid"]).first()
    return user.account
Beispiel #4
0
def get_token_info():
    form = TokenForm().validate_for_api()
    s = Serializer(current_app.config['SECRET_KEY'])
    try:
        data = s.loads(form.token.data, return_header=True)
    except BadSignature:
        raise AuthFailed(msg='token is invalid', error_code=1002)
    except SignatureExpired:
        raise AuthFailed(msg='token is expired', error_code=1003)
    r = {
        'scope': data[0]['scope'],
        'create_at': format_time(data[1]['iat']),
        'expire_in': format_time(data[1]['exp']),
        'uid': data[0]['uid']
    }
    return jsonify(r)
Beispiel #5
0
 def verify_t(*args, **kwargs):
     # 1、从请求头上拿到token
     try:
         token = request.headers["Authorization"]
     except Exception:
         # 1.1、如果没拿到,返回没有权限
         raise AuthorizationException()
     # 1.2、如果拿到Token,开始校验Token有效性
     s = Serializer(SECRET_KEY)
     d = {'token': token}
     form = TokenForm(data=d)
     try:
         data = s.loads(form.token.data)
     except SignatureExpired:
         raise AuthorizationException(msg='Token已过期')
     except BadSignature:
         raise AuthorizationException(msg='非法Token')
     return view_func(*args, **kwargs)
Beispiel #6
0
def get_token_info():
    '''获取令牌信息'''
    form = TokenForm().validate_for_api()
    s = Serializer(current_app.config['SECRET_KEY'])
    try:
        data = s.loads(form.token.data, return_header=True)  # data {id:'',type:''}
    except BadSignature:
        raise AuthFailed(msg='token is invalid')
    except SignatureExpired:
        raise AuthFailed(msg='token is expired')
    r = {
        'scope': data[0]['scope'],
        'create_at': data[1]['iat'],
        'expire_in': data[1]['exp'],
        'uid': data[0]['uid']
    }

    return jsonify(r)
Beispiel #7
0
def get_token_info():
    """获取令牌信息"""
    form = TokenForm().validate_for_api()
    s = Serializer(current_app.config['SECRET_KEY'])
    try:
        data = s.loads(form.token.data, return_header=True)  # 不报错就是合法的token
    except SignatureExpired:
        raise AuthFailed(msg='token is expired', erro_code=1003)
    except BadSignature:
        raise AuthFailed(msg='token is invalid', erro_code=1002)

    r = {
        'scope': data[0]['scope'],
        'create_at': data[1]['iat'],  # 创建时间
        'expire_in': data[1]['exp'],  # 过期时间
        'uid': data[0]['uid']
    }  # 把令牌信息读取出来,以明文方式返回到客户端去
    # 自定义返回字段,甚至不返回,只提供验证功能
    return jsonify(r)
Beispiel #8
0
def get_token_info():
    form = TokenForm().validate_for_api()
    token = form.token.data
    s = Serializer(current_app.config['SECRET_KEY'])
    try:
        # return_header=True 可以让返回结果多一些信息,比如创建时间和过期时间
        data = s.loads(token.encode('utf-8'), return_header=True)
    except BadSignature:
        # token无法解密的异常
        raise AuthFailed(msg='token is invalid', error_code=1002)
    except SignatureExpired:
        # token时间过期的异常
        raise AuthFailed(msg='token is expired', error_code=1003)
    r = {
        'scope': data[0]['scope'],
        'create_at': data[1]['iat'],
        'expire_in': data[1]['exp'],
        'uid': data[0]['uid']
    }
    return jsonify(r)
Beispiel #9
0
def get_token_info():
    form = TokenForm().validate_for_api()
    token = form.token.data

    s = Serializer(current_app.config['SECRET_KEY'])
    try:
        # return_header=True 把框架自带的token过期时间和创建时间返回去,格式为tuple
        # ({'uid': 5, 'scope': 'UserScope', 'ac_type': 100}, {'alg': 'HS512', 'iat': 1552396311, 'exp': 1554988311})
        data = s.loads(token, return_header=True)
    except BadSignature:
        raise AuthFailed(msg='token is invalid', error_code=1002)
    except SignatureExpired:
        raise AuthFailed(msg='token is expired', error_code=1003)

    r = {
        'uid': data[0]['uid'],
        'scope': data[0]['scope'],
        'expire_in': data[1]['exp'],
        'create_at': data[1]['iat'],
    }
    return jsonify(r)
Beispiel #10
0
def get_token_info():
    """获取令牌信息"""
    '''
    http://localhost:5000/v1/token/secret
    {"token":"eyJhbGciOiJIUzIgjb7Y"}
    '''
    form = TokenForm().validate_for_api()
    s = Serializer(current_app.config['SECRET_KEY'])
    try:
        data = s.loads(form.token.data, return_header=True)
    except SignatureExpired:
        raise AuthFailed(msg='token is expired', error_code=1003)
    except BadSignature:
        raise AuthFailed(msg='token is invalid', error_code=1002)

    r = {
        'scope': data[0]['scope'],
        'create_at': data[1]['iat'],  #token创建时间
        'expire_in': data[1]['exp'],  #token有效期
        'uid': data[0]['uid']
    }
    return jsonify(r)
Beispiel #11
0
def get_token_info():
    # url = http://localhost:5000/v1/secret
    form = TokenForm().validate_for_api()
    token = form.token.data
    s = Serializer(current_app.config["SECRET_KEY"])
    try:
        data = s.loads(token, return_header=True)
    except BadSignature:
        raise AuthFailed(msg="token is invalid", error_code=1002)
    except SignatureExpired:
        raise AuthFailed(msg="token is expired", error_code=1003)

    create_at = time.strftime("%Y-%m-%d %H:%M:%S",
                              time.localtime(data[1]["iat"]))
    expire_in = time.strftime("%Y-%m-%d %H:%M:%S",
                              time.localtime(data[1]["exp"]))
    r = {
        "uid": data[0]["uid"],
        "scope": data[0]["scope"],
        "create_at": create_at,
        "expire_in": expire_in,
    }
    return jsonify(r)