コード例 #1
0
def handle_info():
    """
    账号详情
    :return: json
    """
    res = ResMsg()
    
    token = request.args.get("token")
    payload = Auth.decode_auth_token(token)
    userid= payload['user_id']

    res_data= dict()
    
    user = db.session.query(EtAccount.id, EtAccount.name, EtAccount.role_id, EtAccount.status).filter(EtAccount.name == userid).first()
    if user:
        res_data.update(dict(zip(user.keys(), user)))
        if res_data['role_id']== 1:
            res_data['roles']= ['admin']
            res_data['avatar']= 'https://qiniu.staticfile.org/user_avatar.jpg'
            del res_data['role_id']
        res.update(code=ResponseCode.Success, data=res_data, msg='账号获取成功')
        return res.data
    else:

        res.update(code=ResponseCode.Success, data={},msg='账户异常')
        return res.data
コード例 #2
0
def test_refresh_token():
    """
    刷新token,获取新的数据获取token
    :return:
    """
    res = ResMsg()
    refresh_token = request.args.get("refresh_token")
    if not refresh_token:
        res.update(code=ResponseCode.InvalidParameter)
        return res.data
    payload = Auth.decode_auth_token(refresh_token)
    # token被串改或过期
    if not payload:
        res.update(code=ResponseCode.PleaseSignIn)
        return res.data

    # 判断token正确性
    if "user_id" not in payload:
        res.update(code=ResponseCode.PleaseSignIn)
        return res.data
    # 获取新的token
    access_token = Auth.generate_access_token(user_id=payload["user_id"])
    data = {
        "access_token": access_token.decode("utf-8"),
        "refresh_token": refresh_token
    }
    res.update(data=data)
    return res.data
コード例 #3
0
def handle_loginout():
    """
    账号登出接口
    :return:
    """
    res = ResMsg()
    header_token = request.headers.get("xtoken")
    access_token = request.args.get("token",header_token)
    if not access_token:
        res.update(code=ResponseCode.InvalidParameter)
        return res.data
    payload = Auth.decode_auth_token(access_token)
    if not payload:
        res.update(code=ResponseCode.PleaseSignIn)
        return res.data
    if "user_id" not in payload:
        res.update(code=ResponseCode.PleaseSignIn)
        return res.data
    # @todo 移除accesstoken
    access_token = None
    data = {"access_token": None}
    res.update(code=ResponseCode.Success, data=data, msg='logout success!')
    
    return res.data