Exemple #1
0
def submit_vcode(request):
    """获取验证登录注册"""
    phonenum = request.POST.get('phone')
    vcode = request.POST.get('vcode')
    # 判断发送的短信验证和获取的短信验证码是否一致.
    # 从缓存中取出验证码
    cached_vcode = cache.get(keys.VCODE_KEY % phonenum)
    print(cached_vcode)
    if vcode == cached_vcode:
        # 登录或注册
        # 得判断是登录还是注册.
        # 如果能从数据库中查询到这个用户,那么就说明注册过.说明操作是 登录操作.
        # try:
        #     user = User.get(phonenum=phonenum)
        # except User.DoesNotExist:
        #     # 注册
        #     user = User.objects.create(phonenum=phonenum)

        # 简化一下
        user, created = User.get_or_create(phonenum=phonenum,
                                           nickname=phonenum)
        # 登录
        request.session['uid'] = user.id
        # 用户登录成功,记录日志.
        logger.info(f'User {user.id}, login')
        return render_json(data=user.to_dict())
    else:
        raise errors.VcodeErr('验证码错误')
Exemple #2
0
def submit_code(request):
    phonenum = request.POST.get('phonenum')
    vcode = request.POST.get('vcode')

    # 检查验证码是否正确
    key = keys.VCODE_K % phonenum
    cache_code = rds.get(key)

    # 验证码正确时...
    if vcode and vcode == cache_code:
        user_num = User.objects.filter(phonenum=phonenum).count()
        # 如果验证码正确并且已有帐号时...
        if user_num == 1:
            user = User.objects.filter(phonenum=phonenum)[0]
            inf_log.info(f'User Login:{user.id}/{user.phonenum}')

            request.session['uid'] = user.id

            return render_json(data=user.to_dict())

        # 如果验证码正确 没有帐号时...
        elif user_num == 0:
            # 添加 用户
            user = User.objects.create(phonenum=phonenum, nickname=phonenum)
            # 添加 用户资料
            profile = Profile.objects.create(id=user.id)
            # 日志
            inf_log.info(f'User Register:{user.id}/{user.phonenum}')
            # 设置session
            request.session['uid'] = user.id

            return render_json(data=user.to_dict())
    # 验证码错误时...
    else:
        raise errors.VcodeErr('验证码错误')
Exemple #3
0
def submit_vcode(request):
    '''提交短信验证码,登录'''
    phone = request.POST.get('phone')
    vcode = request.POST.get('vcode')

    cache_vcode = cache.get(keys.VCODE_KEY % phone)

    if vcode == cache_vcode:
        # 执行登录过程
        user, _ = User.objects.get_or_create(phonenum=phone, nickname=phone)

        # 在 session 中记录登录状态
        request.session['uid'] = user.id

        return render_json(user.to_dict())
    else:
        raise errors.VcodeErr('验证码错误')
Exemple #4
0
def submit_vcode(request):
    phonenum = request.POST.get('phonenum')
    vcode = request.POST.get('vcode')

    key = keys.VCODE_K % phonenum
    cached_vcode = rds.get(key)

    if vcode and vcode == cached_vcode:
        try:
            user = User.objects.get(phonenum=phonenum)
            inf_log.info(f'User Login: {user.id} / {user.phonenum}')
        except User.DoesNotExist:
            user = User.objects.create(phonenum=phonenum, nickname=phonenum)
            inf_log.info(f'User Register: {user.id} / {user.phonenum}')

        request.session['uid'] = user.id
        return render_json(user.to_dict())

    else:
        raise errors.VcodeErr('验证码错误')
Exemple #5
0
def submit_vcode(request):
    '''提交验证码登录'''
    phonenum = request.POST.get('phonenum')
    u_vcode = request.POST.get('vcode')
    key = keys.VCODE_K + str(f'{phonenum}')
    vcode = rds.get(key)
    if vcode and vcode == u_vcode:
        try:
            user = User.objects.get(phonenum=phonenum)
            info_log.info(f'User login:{user.id}')
        except User.DoesNotExist:
            user = User()
            user.phonenum = phonenum
            user.nickname = phonenum
            user.save()
            info_log.info(f'User register:{user.phonenum}')
        request.session['uid'] = user.id
        return render_json(user.to_dict())
    else:
        # return render_json(data='验证码错误', code=errors.VCODE_ERR)
        raise errors.VcodeErr('验证码错误')
Exemple #6
0
def submit_vcode(request):
    '''提交验证码,执行登录注册'''
    phonenum = request.POST.get('phonenum')
    vcode = request.POST.get('vcode')

    key = keys.VCODE_K % phonenum
    cached_vcode = rds.get(key)

    if True:
    # if vcode and vcode == cached_vcode:
        try:
            user = User.objects.get(phonenum=phonenum)  # 从数据库获取用户
        except User.DoesNotExist:
            # 如果用户不存在,则执行注册流程
            user = User.objects.create(phonenum=phonenum, nickname=phonenum)

        # 在 Session 中记录用户登录的状态
        request.session['uid'] = user.id

        return render_json(user.to_dict())
    else:
        raise errors.VcodeErr('验证码错误')