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)
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)
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
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)
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)
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)
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)
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)
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)
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)
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)