Example #1
0
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
Example #2
0
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')
Example #3
0
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)
Example #4
0
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')
Example #5
0
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
Example #6
0
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')
Example #7
0
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')
Example #8
0
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)
Example #9
0
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)
Example #10
0
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
Example #11
0
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