示例#1
0
文件: views.py 项目: kong0101/news
def login_vaild(request):
    email = request.POST['email'].strip()
    vaild_code = request.POST['vaild'].strip()

    if not all((email, vaild_code)):
        info = {'state': 1, 'msg': '用户名或验证码不能为空!'}
        return HttpResponse(json.dumps(info, ensure_ascii=False), content_type='application/json', charset='utf-8')
    if not code_.valid_code(email, vaild_code):
        info = {'state': 1, 'msg': '验证码输入错误!'}
        return HttpResponse(json.dumps(info, ensure_ascii=False), content_type='application/json', charset='utf-8')
    login_user = TUser.objects.filter(email=email).first()
    if login_user:
        token = token_.gen_token(login_user.user_id)
        cache_.add_token(token, login_user.user_id)
        head_url = 'http://localhost:8000/static/天空.jpg'
        if login_user.img:
            head_url = login_user.img
        nickname = '昵称'
        if login_user.nickname:
            nickname = login_user.nickname
        info = {'state': 0, 'msg': '登录成功!', 'token': token, 'head_url': head_url, 'nickname': nickname}
        return HttpResponse(json.dumps(info, ensure_ascii=False), content_type='application/json', charset='utf-8')
    else:
        info = {'state': 1, 'msg': '该用户未注册!'}
        return HttpResponse(json.dumps(info, ensure_ascii=False), content_type='application/json', charset='utf-8')
示例#2
0
def login():
    resp = validate_json()
    if resp: return resp

    resp = validate_params('phone', 'pwd')
    if resp: return resp

    data = request.get_json()
    try:
        user = session.query(User).filter(User.phone == data['phone'],
                                          User.pwd == data['pwd']).one()

        token = token_.gen_token(user.u_id)
        cache_.add_token(token, user.u_id)

        resp: Response = jsonify({'state': 0, 'msg': '登录成功', 'token': token})

        # 设置响应对象的cookie,向客户端响应cookie
        resp.set_cookie('token', token)
        return resp
    except:
        pass

    return jsonify({
        'state': 4,
        'msg': '用户名或口令输入错误',
    })
示例#3
0
def regist():
    # 要求JSON数据格式:
    valid_fields = {"name", "phone", "code", "auth_str"}
    data = request.get_json()  # 获取上传的json数据
    if data is None:
        return jsonify({'state': 4, 'msg': '必须提供json格式的参数'})

    # 验证参数的完整性
    if set(data.keys()) == valid_fields:
        # 验证输入的验证码是否正确
        if not code_.valid_code(data['phone'], data['code']):
            return jsonify({'state': 2, 'msg': '验证码输入错误,请确认输入的验证码'})

        user = TUser()
        user.name = data.get('name')
        user.phone = data.get('phone')
        user.auth_string = data.get('auth_str')
        user.create_time = datetime.now()

        session.add(user)
        session.commit()

        # 向前端返回信息中,包含一个与用户匹配的token(有效时间为一周)
        # 1. 基于uuid+user_id生成token
        # 2. 将token和user_id保存到缓存(cache_.save_token(token, user_id))
        # JWT 单点授权登录
        token = token_.gen_token(user.user_id)
        cache_.add_token(token, user.user_id)
    else:
        return jsonify({'state': 1, 'msg': '参数不完速,详情请查看接口文档'})

    return jsonify({'state': 0, 'msg': '注册并登录成功', 'token': token})
示例#4
0
def login():
    resp = validate_json()
    if resp: return resp

    resp = validate_params('phone', 'auth_str')
    if resp: return resp

    data = request.get_json()
    try:
        user = session.query(TUser).filter(
            or_(TUser.phone == data['phone'], TUser.name == data['phone']),
            TUser.auth_string == data['auth_str']).one()

        token = token_.gen_token(user.user_id)
        cache_.add_token(token, user.user_id)
        head_url = ''
        if user.head:
            head_url = cache_.get_head_url(user.head)
            if not head_url:
                head_url = oss_.get_oss_img_url(user.head)
                cache_.save_head_url(user.head, head_url)

        resp: Response = jsonify({
            'state': 0,
            'msg': '登录成功',
            'token': token,
            'head': head_url
        })

        # 设置响应对象的cookie,向客户端响应cookie
        resp.set_cookie('token', token)
        resp.set_cookie('head', head_url)

        return resp
    except Exception as e:
        print(e)

    return jsonify({
        'state': 4,
        'msg': '用户名或口令输入错误',
    })
示例#5
0
文件: views.py 项目: kong0101/news
def login_pwd(request):
    email = request.POST['email'].strip()
    password = request.POST['password'].strip()
    if not all((email, password)):
        info = {'state': 1, 'msg': '用户名或口令不能为空!'}
        return HttpResponse(json.dumps(info, ensure_ascii=False), content_type='application/json', charset='utf-8')
    password_ = md5_.hash_encode(password)
    login_user = TUser.objects.filter(email=email, password=password_).first()
    if login_user:
        token = token_.gen_token(login_user.user_id)
        cache_.add_token(token, login_user.user_id)
        head_url = 'http://localhost:8000/static/天空.jpg'
        if login_user.img:
            head_url = login_user.img
        nickname = '昵称'
        if login_user.nickname:
            nickname = login_user.nickname
        info = {'state': 0, 'msg': '登录成功!', 'token': token, 'head_url': head_url, 'nickname': nickname}
        return HttpResponse(json.dumps(info, ensure_ascii=False), content_type='application/json', charset='utf-8')
    else:
        info = {'state': 1, 'msg': '用户名或口令错误!'}
        return HttpResponse(json.dumps(info, ensure_ascii=False), content_type='application/json', charset='utf-8')
示例#6
0
文件: views.py 项目: kong0101/news
def register(request):
    email = request.POST['email'].strip()
    vaild_code = request.POST['vaild'].strip()
    if not all((email, vaild_code)):
        info = {'state': 1, 'msg': '用户名或验证码不能为空!'}
        return HttpResponse(json.dumps(info, ensure_ascii=False), content_type='application/json', charset='utf-8')
    if not code_.valid_code(email, vaild_code):
        info = {'state': 1, 'msg': '验证码输入错误!'}
        return HttpResponse(json.dumps(info, ensure_ascii=False), content_type='application/json', charset='utf-8')
    # if vaild_code != '0000':
    #     info = {'state': 1, 'msg': '验证码输入错误!'}
    #     return HttpResponse(json.dumps(info, ensure_ascii=False), content_type='application/json', charset='utf-8')
    user = TUser()
    user.email = email
    token = token_.gen_token(user.user_id)
    user.save()
    print(token, user.email)
    cache_.add_token(token, user.user_id)
    head_url = 'http://localhost:8000/static/天空.jpg'
    nickname = '昵称'
    info = {'state': 0, 'msg': '登录成功!', 'token': token, 'head_url': head_url, 'nickname': nickname}
    return HttpResponse(json.dumps(info, ensure_ascii=False), content_type='application/json', charset='utf-8')