def on_connect(sid, environ): """ 当客户端连接时做的事情 如果方法返回False,表示服务器拒绝客户端的socketio连接, :param environ: dict :return: """ # print('sid={}'.format(sid)) # print('environ={}'.format(environ)) timestamp = time.time() sio.emit('notify', { 'msg': 'Hello, this is notify event', 'timestamp': timestamp }) # send -> event 'message' sio.send({'msg': 'Hello, this is message event', 'timestamp': timestamp}) # 解析environ字典,取出查询字符串中传递的token request = Request(environ) token = request.args.get('token') # print('token=>{}'.format(token)) # 验证token,获取用户身份 if token: payload = verify_jwt(token, JWT_SECRET) # print('payload->{}'.format(payload)) if payload is not None: user_id = payload['user_id'] # 将用户添加到专属房间,房间编号为用户id,方便flask web那边的业务可以直接给user_id对应的房间发送消息 sio.enter_room(sid, str(user_id)) return return False
def check_jwt_token(token): """ 检验jwt token :param token: :return: """ payload = verify_jwt(token, JWT_SECRET) if payload is None: return None else: return payload.get('user_id')
def jwt_authentication(): # 从请求头中取出token g.user_id = None g.use_refersh_token = False token = request.headers.get("Authorization") if token is not None and token.startswith('Bearer '): # 验证token # Bearer token = token[7:] payload = verify_jwt(token) if payload is not None: g.user_id = payload.get('user_id') g.use_refersh_token = payload.get('is_refresh', False)
def get_userinfo(): '''获取用户信息''' # 获取请求头中的token header = request.headers.get('Authorization') g.userid = None if header and header.startwith('Bearer'): # 取出token token = header[7:] # 校验token data = verify_jwt(token) if data: # 校验成功 g.userid = data.get('userid')
def jwt_authentication(): """根据jwt验证用户身份""" g.user_id = None g.is_refresh_token = False # 从请求头中获取参数 authorization = request.headers.get('Authorization') if authorization and authorization.startswith('Bearer '): token = authorization.split(" ")[-1] payload = verify_jwt(token) if payload: g.user_id = payload.get('user_id') g.is_refresh_token = payload.get('is_refresh') pass
def get_userinfo(): #获取请求投头中的token token = request.headers.get('Authorization') g.userid = None #验证token if token: data = verify_jwt(token) if data: #去除用户id ,使用g变量记录 g.userid =data.get('userid')
def jwt_authentication(): # before_request 请求钩子 # 从请求头的Authorization中取出token, 反序列化获取user_id、refresh(是否为长效token) # 把user_id,refresh 放入g对象中 g.user_id ,g.is_refresh_token = None,False # 设置初始值 authorization =request.headers.get('Authorization') #获取Authentication值 # if authorization is not None: # token = authorization.startswith('Bearer ') print(authorization) if authorization and authorization.startswith('Bearer '): #startswith 返回的byes # token = authorization.strip('Bearer ') #strip 返回的字符串 token = authorization.strip()[7:] payload = verify_jwt(token) # 反序列化获取layload字段 if payload: g.user_id = payload.get('user_id') g.is_refresh_token = payload.get('refresh')
def jwt_authentication(): """校验token的请求钩子""" g.user_id = None g.use_refresh_token = False # 从请求头中获取token # token格式:Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1NjA4NDc0MzMsInVzZXJfaWQiOjExNDA4NzI3NDQ1NDAzMDc0NTZ9.50upsAE1XqD3wxbRZuVmqmDZ6F3iO6wtTumEqeq3OUY token = request.headers.get('Authorization') if token is not None and token.startswith('Bearer '): token = token[7:] payload = verify_jwt(token) if payload is not None: g.user_id = payload.get('user_id') # 如果时refresh_token g.use_refresh_token = payload.get("is_refresh", False)
def jwt_authentication(): # 获取请求头中的token # Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzb21lIjoicGF5bG9hZCJ9.4twF # t5NiznN84AWoo1d7KO1T_yoc0Z6XOpOVswacPZg g.user_id = None g.is_refresh = False token = request.headers.get('Authorization') if token is not None and token.startswith('Bearer '): token = token[7:] # 验证token payload = verify_jwt(token) if payload is not None: # 保存到g对象中 g.user_id = payload.get('user_id') g.is_refresh = payload.get('is_refresh', False)
def check_user_id(environ, secret): """ 检查用户id :param environ: :param secret: :return: user_id or None """ # 判断用户身份 request = Request(environ) authorization = request.headers.get('Authorization') user_id = None if authorization and authorization.startswith('Bearer '): token = authorization.strip()[7:] payload = verify_jwt(token, secret=secret) if payload: user_id = payload.get('user_id') elif authorization and authorization.startswith('Anony '): user_id = authorization.strip()[6:] return user_id
def check_user_id_from_querystring(environ, secret): """ 检查用户id :param environ: :param secret: :return: user_id or None """ # 判断用户身份 request = Request(environ) token = request.args.get('token') anonymous = request.args.get('a') if token: payload = verify_jwt(token, secret=secret) if payload: user_id = payload.get('user_id') return user_id elif anonymous: return anonymous return None