Beispiel #1
0
def register_action(request):
    if "name" and "password" and "confirm_password" in request.GET:
        if request.GET["password"] == request.GET["confirm_password"]:
            request_name = request.GET["name"]
            request_password = request.GET["password"]
            if User.objects.filter(name=request_name).count() > 0:
                return HttpResponse("already has this name, please try another one")
            else:
                user = User()
                user.name = request_name
                user.password = request_password
                user.save()
                return HttpResponse("register success<br><a href='/login'>login now</a>")
        else:
            return HttpResponse("the passwords you entered do not match")
    else:
        return HttpResponse("incomplete field")
Beispiel #2
0
def register_post():
    mobile = request.form.get('mobile')
    imagecode = request.form.get('imagecode')
    password = request.form.get('password')
    password2 = request.form.get('password2')
    if imagecode != session['code']:
        return jsonify(status_code.USER_REGISTER_CODE_ERROR)
    if not all([mobile, imagecode, password, password2]):
        return jsonify(status_code.USER_REGISTER_PARAMS_VALID)
    if re.match(r'1[3456789]/d{9}', mobile):
        return jsonify(status_code.USER_REGISTER_MOBILE_INVALID)
    if password2 != password:
        return jsonify(status_code.USER_REGISTER_PASSWORD_ERROR)
    user = User.query.filter(User.phone == mobile).all()
    if user:
        return jsonify(status_code.USER_REGISTER_MOBILE_EXSIST)
    user = User()
    user.phone = mobile
    user.password = password
    user.name = mobile
    user.add_update()
    return jsonify({'code': status_code.OK})
Beispiel #3
0
def login_reg(request):
    if request.method == 'POST':
        if len(request.POST) == 2:
            name = request.POST['username']
            pwd = request.POST['password']
            user_set = User.objects.filter(username=name, password=pwd)
            client = User()
            for u in user_set:
                client = u
            if client.username:
                request.session['client'] = client
                return HttpResponse('ok')
            else:
                return HttpResponse('用户名或密码输入错误')

        elif len(request.POST) == 6:
            name = request.POST['username']
            nickname = request.POST['nickname']
            phone = request.POST['mobile']
            pwd = request.POST['password']
            pwd2 = request.POST['password2']
            sex = request.POST['sex']
            name_dic = verify_username(name)
            phone_dic = verify_phone(phone)
            pwd_dic = verify_pwd(pwd, pwd2)
            dictMerged = dict(name_dic.items() +
                              phone_dic.items() + pwd_dic.items())
            if dictMerged['phone'] == '' and dictMerged['name'] == '' and dictMerged['pwd'] == '':
                user = User()
                user.username = name
                user.nickname = nickname
                user.mobile = phone
                user.password = pwd
                user.sex = sex
                user.save()
            return HttpResponse(json.dumps(dictMerged))
    else:
        return render(request, 'login_reg.html', locals())
Beispiel #4
0
def register(request):
    try:
        if request.method == 'GET':
            username = request.GET.get('username')
            email = request.GET.get('email')
            password = request.GET.get('password')
            icon_password = request.GET.get('icon_password')

            user = User()
            if User.objects.filter(name=username):
                return HttpResponse('该用户已存在')
            else:
                user.name = username
                user.email = email
                user.password = password
                user.icon = icon_password
                if icon_password == password:
                    user.save()
                    return HttpResponse('注册成功')
                else:
                    return HttpResponse('两次密码不一致')
    except:
        return HttpResponse('网络错误')
    return render(request, 'index.html')
Beispiel #5
0
def validate(request):
    userName = ''
    loggedInUser = ''
    if request.method == 'POST':
        user = User()
        user.username = user
        user.firstName = request.POST.get('first_name')
        user.lastName = request.POST.get('last_name')
        user.email = request.POST.get('email')
        user.password = request.POST.get('password')
        if checkEmail(user.email):
            user.save()
            userName = user
            user.username = str(userName)
            user.save()
        else:
            flag = 0
            return render(request, 'register.html', {'flag': flag})
        userName = user.username
        return render(request, 'login-register.html', {
            'userName': userName,
            'loggedInUser': ''
        })
    return render(request, '/login.html/')
Beispiel #6
0
def register():
    """
    注册
    http://127.0.0.1:5000/api/v1.0/users/
    请求的参数:手机号、短信验证码、密码
    参数格式:json
    {
        "mobile":"18611111111",
        "sms_code":"404989",
        "password":"******"
        }
    :return:
    """
    # 获取请求的json数据,返回字典
    req_dict = request.get_json()
    mobile = req_dict.get("mobile")
    sms_code = req_dict.get("sms_code")
    password = req_dict.get("password")

    # 校验参数
    if not all([mobile, sms_code, password]):
        return jsonify(errno=RET.PARAMERR, errmsg="参数不完整")

    # 判断手机格式
    if not re.match(r"1[345678]\d{9}", mobile):
        # 表示格式不对
        return jsonify(errno=RET.PARAMERR, errmsg="手机格式错误")
    # 从redis中取出短信验证码
    try:
        real_sms_code = redis_store.get("sms_code_%s" % mobile)
    except Exception as e:
        current_app.logger.error(e)
        return jsonify(error=RET.DBERR, errmsg="读取真实短信验证码异常")
    # 判断短信验证码是否过期
    if real_sms_code is None:
        return jsonify(error=RET.NODATA, errmsg="短信验证码失效")
    # 删除redis中的短信验证码,防止重复使用校验
    # try:
    #     redis_store.delete("sms_code_%s" %mobile)
    # except Exception as e:
    #     current_app.logger.error(e)
    # 判断用户填写短信验证码的正确性
    # print(real_sms_code, type(real_sms_code))
    if real_sms_code.decode('utf-8') != sms_code:
        return jsonify(error=RET.DATAERR, errmsg="短信验证码错误")
    # 判断用户的手机号是否注册过
    # try:
    #     user = User.query.filter_by(mobile=mobile).first()
    # except Exception as e:
    #     current_app.logger.error(e)
    # else:
    #     if user is not  None:
    #         # 表示手机号已经存在
    #         return jsonify(errno=RET.DATAEXIST,errmsg="手机号已存在")

    # 盐值   salt

    #  注册
    #  用户1   password="******" + "abc"   sha1   abc$hxosifodfdoshfosdhfso
    #  用户2   password="******" + "def"   sha1   def$dfhsoicoshdoshfosidfs
    # 比较安全用sha256
    # 用户登录  password ="******"  "abc"  sha256      sha1   hxosufodsofdihsofho

    # 保存用户的注册数据到数据库中
    user = User(name=mobile, mobile=mobile)
    # user.generate_password_hash(password)
    user.password = password  # 设置属性
    # print(user.password)  # 读取属性
    # 保存用户的注册数据到数据库中
    try:
        db.session.add(user)
        db.session.commit()
    except IntegrityError as e:
        # 出错的话就回滚
        db.session.rollback()
        # 表示手机号出现重复值
        current_app.logger.error(e)
        return jsonify(errno=RET.DATAEXIST, errmsg="手机号已存在")
    except Exception as e:
        db.session.rollback()
        current_app.logger.error(e)
        return jsonify(error=RET.DBERR, errmsg="查询数据库异常")
    # 保存登录状态到session中
    session['name'] = user.name
    session['mobile'] = user.mobile
    session['user_id'] = user.id

    # 返回结果
    return jsonify(errno=RET.OK, errmsg="注册成功!")