コード例 #1
0
ファイル: views.py プロジェクト: nickZlbzy/project_FF
def mobile_verify(request):
    if request.method == "GET":
        mobile = request.GET.get("phone")
        if mobile:
            code = Sms_verify.tencent_send(mobile)
            if code:
                key = 'sms:%s' % mobile
                code_m = Utils.make_md5s(code)
                r.set(key, code_m)
                r.expire(key, contains.MOBILE_KEEP_TIME)
                print("本次验证码:", code)
                return JsonResponse({"code": 200, "msg": "发送成功!"})
            return JsonResponse({"code": 10109, "msg": "发送失败!"})
    elif request.method == "POST":
        phone = request.POST.get('phone')
        mobile_verify_code = request.POST.get('verifyCode')
        print(phone, mobile_verify_code)
        if mobile_verify_code and len(mobile_verify_code) == 6:
            key = 'sms:%s' % phone
            saved_code = r.get(key).decode()

            verify_code_m = Utils.make_md5s(mobile_verify_code)
            print("saved:", saved_code)
            print(verify_code_m)
            if not saved_code:
                return JsonResponse({"code": 10111, "msg": "验证码输入错误"})
            elif saved_code != verify_code_m:
                return JsonResponse({"code": 10112, "msg": "验证码输入错误"})

            return JsonResponse({"code": 200})
        else:
            return JsonResponse({"code": 10110, "msg": "验证码输入错误!"})
コード例 #2
0
ファイル: views.py プロジェクト: nickZlbzy/project_FF
def register(request):
    """
        注册功能
        :param request:
        :return:
    """
    if request.method == "GET":
        return render(request, "user/register.html")
    elif request.method == "POST":
        username = request.POST.get("username")
        password = request.POST.get("password")
        pwd2 = request.POST.get("password")
        phone = request.POST.get("phone")
        email = request.POST.get("email")
        if password != pwd2:
            re_data = {"code": 10103, "msg": "两次密码输入不一致"}
            render(request, "user/register.html", locals())
        if User_mapper.check_new(kind="username", value=username):
            re_data = {"code": 10104, "msg": "用户名已存在!"}
            render(request, "user/register.html", locals())
        if User_mapper.check_new(kind="phone", value=phone):
            re_data = {"code": 10105, "msg": "手机号已存在!"}
            render(request, "user/register.html", locals())
        if User_mapper.check_new(kind="username", value=username):
            re_data = {"code": 10106, "msg": "邮箱已存在!"}
            render(request, "user/register.html", locals())

        password_m = Utils.make_md5s(password)
        try:
            user = User_profile_model.objects.create(username=username,
                                                     password=password_m,
                                                     phone=phone,
                                                     email=email)
        except Exception as e:
            print("register exception:", e)
            re_data = {"code": 10107, "msg": "系统异常!"}
            render(request, "user/register.html", locals())

        # TODO 发送激活邮件
        send_email_verify(username, email)

        request.session["username"] = username
        request.session["uid"] = user.id
    # 重定向到首页(可到个人中心页面提示邮箱验证)
    return redirect("/index")
コード例 #3
0
ファイル: views.py プロジェクト: nickZlbzy/project_FF
def login(request):
    """
       登陆功能
       :param request:
       :return:
    """
    if request.method == "GET":
        path_from = request.META.get('HTTP_REFERER', '/')  ## 记录当前页url
        print(path_from)
        path_from = path_from if path_from != '/user/login' else '/index'
        # 判断是否记住了密码

        if "username" in request.COOKIES and "uid" in request.COOKIES:
            try:
                user = User_profile_model.objects.get(
                    username=request.COOKIES["username"])
            except Exception:
                request.delete_cookie('username')
                result = {'code': 10201, 'error': '用户不存在 !!'}
                return HttpResponse(result['error'])
            request.session["username"] = request.COOKIES["username"]
            request.session["uid"] = request.COOKIES["uid"]
            request.session[
                "nickname"] = user.nickname if user.nickname else user.username
            request.session["active"] = user.is_active
            return redirect(path_from)

        request.session["login_from"] = path_from
        return render(request, "user/login.html")
    elif request.method == "POST":
        username = request.POST.get("username")
        password = request.POST.get("password")
        try:
            user = User_profile_model.objects.get(username=username)
        except Exception as e:

            re_data = {"code": 10108, "msg": "用户名或密码错误!"}
            return render(request, "user/login.html", re_data)
        password_m = Utils.make_md5s(password)
        if password_m != user.password:

            re_data = {"code": 10108, "msg": "用户名或密码错误!!"}
            return render(request, "user/login.html", re_data)

        request.session["uid"] = user.id
        request.session["username"] = username
        request.session["is_active"] = user.is_active
        nickname = user.nickname
        if nickname:
            request.session["nickname"] = nickname

        try:
            resp = HttpResponseRedirect(request.session['login_from'])
            del request.session['login_from']
        except KeyError as e:
            resp = HttpResponseRedirect("/index")
        # 检查用户是否 勾选了 '记住用户名',如果勾选,还需要在Cookies中存储 uid&username 过期时间为7天
        if 'isSave' in request.POST.keys():
            resp.set_cookie("uid", user.id, contains.COOKIES_KEEP_TIME)
            resp.set_cookie("username", username, contains.COOKIES_KEEP_TIME)
            # resp.set_cookie("is_active", user.is_active, contants.COOKIES_KEEP_TIME)
            # resp.set_cookie("nickname",nickname,contants.COOKIES_KEEP_TIME)
        return resp