Exemple #1
0
def get_captcha():
    # user_id = 'test'
    gt = GeetestLib(captcha_id, private_key)
    status = gt.pre_process()
    session[gt.GT_STATUS_SESSION_KEY] = status
    response_str = gt.get_response_str()
    return response_str
Exemple #2
0
def login2(request):
    form_obj = forms.UserForm()
    if request.method == 'POST':
        gt = GeetestLib(pc_geetest_id, pc_geetest_key)
        challenge = request.POST.get(gt.FN_CHALLENGE, '')
        validate = request.POST.get(gt.FN_VALIDATE, '')
        seccode = request.POST.get(gt.FN_SECCODE, '')
        status = request.session[gt.GT_STATUS_SESSION_KEY]
        user_id = request.session["user_id"]
        if status:
            result = gt.success_validate(challenge, validate, seccode, user_id)
        else:
            result = gt.failback_validate(challenge, validate, seccode)
        # 如果验证码正确
        if result:
            ret = {'code': 0}
            username = request.POST.get('username')
            password = request.POST.get('password')
            # 自动校验用户名和密码对不对
            user = auth.authenticate(username=username, password=password)
            if user:
                # 内置的login方法
                # 1. 生成Session数据,存一下user_id 然后把sessionid写入Cookie
                # 后续每一次请求来的时候,AuthenticationMiddleware中的process_request方法中
                # 会自动帮我们取到user_id,然后到数据库中拿出user对象,然后添加到request.user属性中 --> request.user = user
                # 后续我们都可以通过request.user拿到当前的登陆用户对象
                auth.login(request, user)
                ret['data'] = '/home/'
            else:
                ret['code'] = 1
                ret['data'] = '用户名或密码错误'
            return JsonResponse(ret)
    return render(request, 'login2.html', {'form_obj': form_obj})
Exemple #3
0
def login(request):
    if request.method=='POST':
        ret = {"status": 0, "msg": ""}
        username = request.POST.get('username')
        password = request.POST.get('password')
        print(111)
        gt = GeetestLib(pc_geetest_id, pc_geetest_key)
        challenge = request.POST.get(gt.FN_CHALLENGE, '')
        validate = request.POST.get(gt.FN_VALIDATE, '')
        seccode = request.POST.get(gt.FN_SECCODE, '')
        status = request.session[gt.GT_STATUS_SESSION_KEY]
        user_id = request.session["user_id"]
        if status:
            result = gt.success_validate(challenge, validate, seccode, user_id)
        else:
            result = gt.failback_validate(challenge, validate, seccode)
        if result:
            # 验证码正确
            # 利用auth模块做用户名和密码的校验
            user = auth.authenticate(username=username, password=password)
            if user:
                # 用户名密码正确
                # 给用户做登录
                auth.login(request, user)
                ret["msg"] = "/index/"
            else:
                # 用户名密码错误
                ret["status"] = 1
                ret["msg"] = "用户名或密码错误!"
        else:
            ret["status"] = 1
            ret["msg"] = "验证码错误"
        return JsonResponse(ret)
    return render(request,'login.html')
Exemple #4
0
def login(request):
    if request.method == "POST":
        ret = {"status": 0, "msg": ""}
        username = request.POST.get("username")
        pwd = request.POST.get("password")
        gt = GeetestLib(pc_geetest_id, pc_geetest_key)
        challenge = request.POST.get(gt.FN_CHALLENGE, '')
        validate = request.POST.get(gt.FN_VALIDATE, '')
        seccode = request.POST.get(gt.FN_SECCODE, '')
        status = request.session[gt.GT_STATUS_SESSION_KEY]
        user_id = request.session["user_id"]

        if status:
            result = gt.success_validate(challenge, validate, seccode, user_id)
        else:
            result = gt.failback_validate(challenge, validate, seccode)
        if result:
            user = auth.authenticate(username=username, password=pwd)
            if user:
                auth.login(request, user)
                ret["msg"] = "/index/"
            else:
                ret["status"] = 1
                ret["msg"] = "Incorrect username or password"
        else:
            ret['status'] = 1
            ret['msg'] = 'Incorrect Captcha'

        return JsonResponse(ret)
    return render(request, "login.html")
Exemple #5
0
def validate_captcha():
    gt = GeetestLib(current_app.config['GEETEST_ID'],
                    current_app.config['GEETEST_KEY'])
    challenge = request.form[gt.FN_CHALLENGE]
    validate = request.form[gt.FN_VALIDATE]
    seccode = request.form[gt.FN_SECCODE]
    status = session[gt.GT_STATUS_SESSION_KEY]
    geetest_user_id = session["geetest_user_id"]
    if status:
        result = gt.success_validate(challenge, validate, seccode,
                                     geetest_user_id)
    else:
        result = gt.failback_validate(challenge, validate, seccode)
    form = LoginForm()
    if result & form.validate_on_submit():
        user = User.query.filter_by(username=form.username.data).first()
        if user and user.verify_password(user.password_hash,
                                         form.password.data):
            login_user(user, remember=form.remember_me.data)
            flash(
                u"Log in successfully! Your last login date is: %s" %
                str(current_user.last_login_date).split('.')[0], 'success')
            user.last_login_date = datetime.now()
            return redirect(url_for('admin.index'))
        flash(u"Username or Password error!", 'error')
        current_app.logger.warning(u'Invalid Login: %s, %s' %
                                   (form.username.data, form.password.data))
    return render_template('admin/login.html', form=form)
Exemple #6
0
def acc_login(request):
    if request.method == "POST":
        print(request.POST)
        res = {"status": 0, "msg": ""}
        username = request.POST.get("username")
        password = request.POST.get("pwd")
        # 获取极验 滑动验证码相关的参数
        gt = GeetestLib(pc_geetest_id, pc_geetest_key)
        challenge = request.POST.get(gt.FN_CHALLENGE, '')
        validate = request.POST.get(gt.FN_VALIDATE, '')
        seccode = request.POST.get(gt.FN_SECCODE, '')
        status = request.session[gt.GT_STATUS_SESSION_KEY]
        user_id = request.session["user_id"]
        if status:
            result = gt.success_validate(challenge, validate, seccode, user_id)
        else:
            result = gt.failback_validate(challenge, validate, seccode)
        print("####################", result)
        if result:
            user = authenticate(username=username, password=password)
            print('user', user)
            if user:
                login(request, user)
                res["msg"] = "/index/"
            else:
                res["status"] = 1
                res["msg"] = "认证失败,请检查用户名及密码是否正确"
        else:
            res["status"] = 1
            res["msg"] = "验证码错误"
        print("**************", res)
        return JsonResponse(res)
    return render(request, 'login.html')
Exemple #7
0
 def post(self, request, *args, **kwargs):
     ret = BaseResponse()
     data = StringFormation(request.data.keys()[0]).data
     gt = GeetestLib(pc_geetest_id, pc_geetest_key)
     challenge = data.get(gt.FN_CHALLENGE, '')
     validate = data.get(gt.FN_VALIDATE, '')
     seccode = data.get(gt.FN_SECCODE, '')
     user_id = data.get("user_id")
     status = data.get("status")
     if status:
         result = gt.success_validate(challenge, validate, seccode, user_id)
     else:
         result = gt.failback_validate(challenge, validate, seccode)
     if result:
         username = data.get("username")
         passwrod = Auth.encryption(data.get("password"))
         user = models.UserInfo.objects.filter(username=username,
                                               password=passwrod).first()
         if user:
             token = Auth.token(user.username)
             models.Token.objects.update_or_create(
                 user=user, defaults={"token": token})
             request.session["user_id"] = user.id
             request.session["username"] = user.username
             ret.msg = "登录成功"
             ret.token = token
             ret.username = user.username
         else:
             ret.code = 1001
             ret.msg = "登录失败"
             ret.error = "用户名或密码错误"
     return Response(ret.response_dict)
Exemple #8
0
def login(request):
    # 用于验证ajax请求过来的验证码和帐号密码
    if request.method == 'POST':
        username = request.POST.get("username")
        user = UserModel.objects.filter(u_name=username)
        gt = GeetestLib(pc_geetest_id, pc_geetest_key)
        challenge = request.POST.get(gt.FN_CHALLENGE, '')
        validate = request.POST.get(gt.FN_VALIDATE, '')
        seccode = request.POST.get(gt.FN_SECCODE, '')
        status = request.session[gt.GT_STATUS_SESSION_KEY]
        user_id = request.session["user_id"]
        if status:
            result = gt.success_validate(challenge, validate, seccode, user_id)
        else:
            result = gt.failback_validate(challenge, validate, seccode)
        # 如果帐号和验证码验证无误后,验证密码
        if user and result:
            user = user.first()
            # 全部验证通过后返回登录后的页面
            if request.POST.get("password") == user.u_passwd:
                data = {"code": 300, "href": "/axf/mine"}
                response = JsonResponse(data)
                request.session["use_id"] = user.id
                return response
            else:
                data = {"code": 200, "error_msg": "输入的信息有误", "href": "/axf/login"}
                return JsonResponse(data)
        else:
            data = {"code": 200, "error_msg": "输入的信息有误", "href": "/axf/login"}
            return JsonResponse(data)
    # 如果是get请求直接返回登录界面
    return render(request, "user/login.html")
Exemple #9
0
def new(user_id, dummy=None):
    if request.method != 'POST':
        return render_template('new-post.html', user_id=user_id)

    gt = GeetestLib(pc_geetest_id, pc_geetest_key)
    challenge = request.form[gt.FN_CHALLENGE]
    validate = request.form[gt.FN_VALIDATE]
    seccode = request.form[gt.FN_SECCODE]
    status = session.get(gt.GT_STATUS_SESSION_KEY, None)
    if status:
        success = gt.success_validate(challenge, validate, seccode, user_id)
        del session[gt.GT_STATUS_SESSION_KEY]
    else:
        success = False

    if not success:
        flash("验证失败")
        return render_template('new-post.html', user_id=user_id)

    title = request.form.get('title', '').strip()
    content = request.form.get('content', '').strip()
    if len(title) == 0 or len(content) == 0:
        flash("内容为空")
        return render_template('new-post.html', user_id=user_id)

    m = Model()
    m.save(user_id, title, content)
    return redirect(url_for('.home', user_id=user_id))
Exemple #10
0
    def post(self, request):
        response = {"user": None, "msg": None}
        form = LoginForm(data=request.POST)
        # 获取极验 滑动验证码相关的参数
        gt = GeetestLib(pc_geetest_id, pc_geetest_key)
        challenge = request.POST.get(gt.FN_CHALLENGE, '')
        validate = request.POST.get(gt.FN_VALIDATE, '')
        seccode = request.POST.get(gt.FN_SECCODE, '')
        status = request.session[gt.GT_STATUS_SESSION_KEY]
        user_id = request.session["user_id"]
        if form.is_valid():
            username = form.cleaned_data.get('username')
            password = form.cleaned_data.get('password')

            # 可以使用自带的authenticate进行校验(使用前提AUTH_USER_MODEL),推荐自行校验,并使用MD5加密进行密码存储
            user = auth.authenticate(username=username, password=password)
            if user is not None:
                if status:
                    result = gt.success_validate(challenge, validate, seccode, user_id)
                else:
                    result = gt.failback_validate(challenge, validate, seccode)
                if result:
                    auth.login(request, user)
                    response['user'] = user.username
                else:
                    response['msg'] = {"verification": ["请进行验证码校验", ]}
                    return JsonResponse(response)
            else:
                response['msg'] = {"password": ["密码错误!", ]}
                return JsonResponse(response)

        response["msg"] = form.errors
        return JsonResponse(response)
Exemple #11
0
    def get(self):
        """
        @api {get} /api/user/captcha 极验证验证码预处理
        @apiName GetCaptChaHandler
        @apiGroup User

        @apiSuccessExample {json} Success-Response:
            HTTP/1.1 200 OK
            {
                "status": 0,
                "message": "success",
                "data": {
                    "success": int,
                    "gt": str,
                    "challenge": str,
                    "new_captcha": boolean
                }
            }
        """
        with catch(self):
            gt = GeetestLib(settings['gee_id'], settings['gee_key'])
            status = gt.pre_process()
            if not status:
                status = 2
            self.redis.set(gt.GT_STATUS_SESSION_KEY, status)
            response_str = json.loads(gt.get_response_str())
            self.success(response_str)
Exemple #12
0
def login(request):
    if request.method == "POST":
        ret = {'status': 0, 'msg': ''}
        username = request.POST.get('username')
        password = request.POST.get('password')
        gt = GeetestLib(pc_geetest_id, pc_geetest_key)
        challenge = request.POST.get(gt.FN_CHALLENGE, '')
        validate = request.POST.get(gt.FN_VALIDATE, '')
        seccode = request.POST.get(gt.FN_SECCODE, '')
        status = request.session[gt.GT_STATUS_SESSION_KEY]
        user_id = request.session["user_id"]
        if status:
            result = gt.success_validate(challenge, validate, seccode, user_id)
        else:
            result = gt.failback_validate(challenge, validate, seccode)
        if result:
            # 验证码正确
            user = auth.authenticate(username=username, password=password)
            if user:
                # 用户名密码正确
                # 给用户做登录
                auth.login(request, user)
                ret["msg"] = '/chess/'
            else:
                ret['status'] = 1
                ret['msg'] = '用户名或验证码错误'
        else:
            ret['status'] = 1
            ret['msg'] = '验证码错误'
        return JsonResponse(ret)
    return render(request, 'login2.html')
Exemple #13
0
    def post(self, request):
        res = {"status": 1000, "msg": None}
        try:
            name = request.data.get("name")
            pwd = request.data.get("pwd")
            # 获取极验 滑动验证码相关的参数
            gt = GeetestLib(pc_geetest_id, pc_geetest_key)
            challenge = request.POST.get(gt.FN_CHALLENGE, '')
            validate = request.POST.get(gt.FN_VALIDATE, '')
            seccode = request.POST.get(gt.FN_SECCODE, '')
            status = request.session[gt.GT_STATUS_SESSION_KEY]
            user_id = request.session["user_id"]

            if status:
                result = gt.success_validate(challenge, validate, seccode,
                                             user_id)
            else:
                result = gt.failback_validate(challenge, validate, seccode)
            if result:
                # 对比数据表的的账号和密码
                user = authenticate(username=name, password=pwd)
                if user:
                    login(request, user)  # 使用login模块进行登录
                    return redirect("index")
                else:
                    res["status"] = 1001
                    res["msg"] = "用户名或密码错误"
            else:
                res["status"] = 1001
                res["msg"] = "验证码错误"
            return JsonResponse(res)
        except Exception as e:
            res["msg"] = "意外错误,断开连接"
            return Response(json.dumps(res, ensure_ascii=False))
Exemple #14
0
def login(request):
    if request.method == "POST":
        #存放状态码和错误信息,用于返回
        ret = {}
        #运用geetest插件的参数
        gt = GeetestLib(pc_geetest_id, pc_geetest_key)
        challenge = request.POST.get(gt.FN_CHALLENGE, '')
        validate = request.POST.get(gt.FN_VALIDATE, '')
        seccode = request.POST.get(gt.FN_SECCODE, '')
        status = request.session[gt.GT_STATUS_SESSION_KEY]
        user_id = request.session["user_id"]
        if status:
            result = gt.success_validate(challenge, validate, seccode, user_id)
        else:
            result = gt.failback_validate(challenge, validate, seccode)
        username = request.POST.get("username")
        pwd = request.POST.get("password")
        #运用auth中间件检测user
        user = auth.authenticate(username=username, password=pwd)
        if result:
            if user:
                #当static为1,将url传过去,当static为0,传错误信息
                ret['static'] = 1
                #将user对象放入request中,可通过request.user获取登录用户信息
                auth.login(request, user)
                ret["msg"] = "/index/"
            else:
                ret['static'] = 0
                ret["msg"] = '用户名或密码错误'
        else:
            ret['static'] = 0
            ret["msg"] = '验证码错误'
        return JsonResponse(ret)
    return render(request, 'login.html')
Exemple #15
0
def login(request):
    if request.method == "POST":
        # print(request.POST)
        # 初始化ret字典
        ret = {"status": 0, "msg": ""}

        gt = GeetestLib(pc_geetest_id, pc_geetest_key)
        challenge = request.POST.get(gt.FN_CHALLENGE, '')
        validate = request.POST.get(gt.FN_VALIDATE, '')
        seccode = request.POST.get(gt.FN_SECCODE, '')
        status = request.session[gt.GT_STATUS_SESSION_KEY]
        user_id = request.session["user_id"]

        username = request.POST.get("username")
        password = request.POST.get("password")
        vaild_code = request.POST.get("vaild_code")

        if status:
            result = gt.success_validate(challenge, validate, seccode, user_id)
        else:
            result = gt.failback_validate(challenge, validate, seccode)
        if result:
            user = auth.authenticate(username=username, password=password)
            if user:
                auth.login(request, user)
                ret["msg"] = "/index/"
                logger.info("用户 {} 登录成功".format(username))
            else:
                ret["status"] = 1
                ret["msg"] = "用户名或密码错误"
        else:
            ret["status"] = 1
            ret["msg"] = "验证码错误"
        return JsonResponse(ret)
    return render(request, "login2.html")
def login2(request):
    form_obj = forms.LoginForm()
    if request.method == "POST":
        gt = GeetestLib(pc_geetest_id, pc_geetest_key)
        challenge = request.POST.get(gt.FN_CHALLENGE, "")
        validate = request.POST.get(gt.FN_VALIDATE, "")
        seccode = request.POST.get(gt.FN_SECCODE, "")
        status = request.session[gt.GT_STATUS_SESSION_KEY]
        user_id = request.session["user_id"]
        if status:
            result = gt.success_validate(challenge, validate, seccode, user_id)
        else:
            result = gt.failback_validate(challenge, validate, seccode)

        if result:
            ret = {"code": 0}
            username = request.POST.get("username")
            password = request.POST.get("password")
            user = auth.authenticate(username=username, password=password)
            if user:
                ret["data"] = "/index/"
            else:
                ret["code"] = 1
                ret["data"] = "用户名或者密码错误"

            return JsonResponse(ret)

    return render(request, "login2.html", {"form_obj": form_obj})
Exemple #17
0
def login(request):
    if request.method == "POST":
        ret = {"status": 0, "msg": ""}
        username = request.POST.get("username")
        pwd = request.POST.get("password")
        # 获取极验 滑动验证码相关的参数
        gt = GeetestLib(pc_geetest_id, pc_geetest_key)
        challenge = request.POST.get(gt.FN_CHALLENGE, '')
        validate = request.POST.get(gt.FN_VALIDATE, '')
        seccode = request.POST.get(gt.FN_SECCODE, '')
        status = request.session[gt.GT_STATUS_SESSION_KEY]
        user_id = request.session["user_id"]
        if status:
            result = gt.success_validate(challenge, validate, seccode, user_id)
        else:
            result = gt.failback_validate(challenge, validate, seccode)
        if result:
            print("XXX")
            # 验证码正确
            # 利用auth模块做用户名和密码的校验
            user = auth.authenticate(username=username, password=pwd)
            if user:
                # 用户名密码正确
                # 给用户做登录
                print('1111')
                auth.login(request, user)  # 将登录用户赋值给 request.user
                ret["msg"] = "/"
            else:
                ret["status"] = 1
                ret["msg"] = "用户名或密码错误!"
        else:
            ret["status"] = 2
            ret["msg"] = "验证码错误"
        return JsonResponse(ret)
    return render(request, "login.html")
Exemple #18
0
    def post(self):
        cookie=self.get_cookie("username")
        if cookie!=None and cookie!="":
            self.redirect('/')
            return
           
        gt = GeetestLib(captcha_id, private_key)
        challenge = self.get_argument(gt.FN_CHALLENGE, "")
        validate = self.get_argument(gt.FN_VALIDATE, "")
        seccode = self.get_argument(gt.FN_SECCODE, "")
        status = self.session[gt.GT_STATUS_SESSION_KEY]
        user_id = self.session["user_id"]
        if status:
            result = gt.success_validate(challenge, validate, seccode, user_id)
        else:
            result = gt.failback_validate(challenge, validate, seccode)
            self.session["user_id"] = user_id
        if not result:
            self.render("login.html",error='You aren\'t human,are you?')
            return

        username = self.get_argument("username", strip=True)
        password = self.get_argument("password", strip=True)
        if (re.match(r"^\w+$",  username)==None or re.match(r"^\w+$",  password)==None):  
            self.render("reg.html",error='Only allow [\w+]!')
            return
        
        res = db.get('select * from aliuser where aliuser=%s and passwd=%s',username,password)

        if (res):
            aes=AESCipher(key)
            self.set_cookie("username", urllib.quote(aes.encrypt(username)))
            self.redirect('/')
        else:
            self.render("login.html",error='wrong username or password!')
Exemple #19
0
    def post(self):
        cookie=self.get_cookie("username")
        if cookie!=None and cookie!="":
            self.redirect('/')
            return
            
        gt = GeetestLib(captcha_id, private_key)
        challenge = self.get_argument(gt.FN_CHALLENGE, "")
        validate = self.get_argument(gt.FN_VALIDATE, "")
        seccode = self.get_argument(gt.FN_SECCODE, "")
        status = self.session[gt.GT_STATUS_SESSION_KEY]
        user_id = self.session["user_id"]
        if status:
            result = gt.success_validate(challenge, validate, seccode, user_id)
        else:
            result = gt.failback_validate(challenge, validate, seccode)
            self.session["user_id"] = user_id
        if not result:
            self.render("reg.html",error='You aren\'t human,are you?')
            return
            
        username = self.get_argument("username", strip=True)
        password = self.get_argument("password", strip=True)    
        if (re.match(r"^\w+$",  username)==None or re.match(r"^\w+$",  password)==None):  
            self.render("reg.html",error='Only allow [\w+]!')
            return

        try:
            res = db.execute('insert into aliuser values(%s,%s)',username,password)
            self.redirect('/login')
        except:
            self.render("reg.html",error='Register Failed: maybe duplicate username!')
    def post(self, request):
        username = request.POST.get("username")
        password = request.POST.get("password")
        remember = request.POST.get("remember")
        if not all([username, password]):
            return JsonResponse({"status": 4, "errmsg": "请完善所有数据"})

        # 获取极验 滑动验证码相关的参数
        gt = GeetestLib(pc_geetest_id, pc_geetest_key)
        challenge = request.POST.get(gt.FN_CHALLENGE, '')
        validate = request.POST.get(gt.FN_VALIDATE, '')
        seccode = request.POST.get(gt.FN_SECCODE, '')
        status = request.session[gt.GT_STATUS_SESSION_KEY]
        user_id = request.session["user_id"]

        if status:
            result = gt.success_validate(challenge, validate, seccode, user_id)
        else:
            result = gt.failback_validate(challenge, validate, seccode)
        if result:
            # 验证码正确
            user_active = User.objects.filter(username=username).values(
                "is_active")  # 判断激活
            user = auth.authenticate(username=username, password=password)
            if user_active:
                if user_active[0]["is_active"]:
                    if user:
                        auth.login(request, user)
                        # 下一次跳转的页面,和未登录时将要跳转的页面
                        next_url = request.GET.get('next', '/index')
                        # response = redirect(next_url)
                        if remember == 'true':
                            user_cookie = username
                            user_name = ""
                            # response.set_cookie("username", username, max_age=7*24*3600)
                        else:
                            # response.delete_cookie('username')
                            user_cookie = ''
                            user_name = username
                        return JsonResponse({
                            "status": 0,
                            "msg": next_url,
                            "user_cookie": user_cookie,
                            "user_name": user_name
                        })
                    else:
                        return JsonResponse({
                            "status": 3,
                            "errmsg": "用户名或密码不正确"
                        })
                else:
                    return JsonResponse({
                        "status": 2,
                        "errmsg": "用户未激活,请到邮箱激活!"
                    })
            else:
                return JsonResponse({"status": 3, "errmsg": "用户名或密码不正确"})
        else:
            return JsonResponse({"status": 1, "errmsg": "验证码错误"})
Exemple #21
0
def get_mobile_captcha():
    user_id = 'test'
    gt = GeetestLib(mobile_geetest_id, mobile_geetest_key)
    status = gt.pre_process(user_id)
    session[gt.GT_STATUS_SESSION_KEY] = status
    session["user_id"] = user_id
    response_str = gt.get_response_str()
    return response_str
Exemple #22
0
def getcaptcha(request):
    user_id = 'test'
    gt = GeetestLib(captcha_id, private_key)
    status = gt.pre_process(user_id)
    request.session[gt.GT_STATUS_SESSION_KEY] = status
    request.session["user_id"] = user_id
    response_str = gt.get_response_str()
    return HttpResponse(response_str)
Exemple #23
0
def get_captcha():
    user_id = random.randint(1,100)
    gt =  GeetestLib(captcha_id, private_key)
    status = gt.pre_process(user_id)
    session[gt.GT_STATUS_SESSION_KEY] = status
    session["random_id"] = user_id
    response_str = gt.get_response_str()
    return response_str
Exemple #24
0
def generate_captcha(request):
    user_id = 'test'
    gt = GeetestLib(GEETEST_ID, GEETEST_KEY)
    status = gt.pre_process(user_id)
    request.session[gt.GT_STATUS_SESSION_KEY] = status
    request.session["user_id"] = user_id
    response_str = gt.get_response_str()
    return HttpResponse(response_str)
def get_geetest(request):
    user_id = 'test'
    gt = GeetestLib(pc_geetest_id, pc_geetest_key)
    status = gt.pre_process(user_id)
    request.session[gt.GT_STATUS_SESSION_KEY] = status
    request.session["user_id"] = user_id
    response_str = gt.get_response_str()
    return HttpResponse(response_str)
Exemple #26
0
def get_captcha():
    user_id = random.randint(1,100)
    gt =  GeetestLib(captcha_id, private_key)
    status = gt.pre_process(user_id)
    session[gt.GT_STATUS_SESSION_KEY] = status
    session["user_id"] = user_id
    response_str = gt.get_response_str()
    return response_str
Exemple #27
0
def get_mobile_captcha():
    user_id = 'test'
    gt = GeetestLib(mobile_geetest_id, mobile_geetest_key)
    status = gt.pre_process(user_id)
    session[gt.GT_STATUS_SESSION_KEY] = status
    session["user_id"] = user_id
    response_str = gt.get_response_str()
    return response_str
Exemple #28
0
def pcgetcaptcha(request):
    user_id = 'test'
    gt = GeetestLib(pc_geetest_id, pc_geetest_key)
    status = gt.pre_process(user_id)
    request.session[gt.GT_STATUS_SESSION_KEY] = status # 可以将status,user_id等临时数据放入redis
    request.session["user_id"] = user_id
    response_str = gt.get_response_str()
    return JsonResponse(eval(response_str))
Exemple #29
0
 def get(self):
     user_id = 'test'
     gt = GeetestLib(mobile_geetest_id, mobile_geetest_key)
     status = gt.pre_process(user_id)
     self.session[gt.GT_STATUS_SESSION_KEY] = status
     self.session["user_id"] = user_id
     response_str = gt.get_response_str()
     self.write(response_str)
Exemple #30
0
def _get_captcha(request):
    session_id = _get_or_create_session_key(request)
    gt = GeetestLib(captcha_id, private_key)
    status = gt.pre_process(session_id)
    request.session[gt.GT_STATUS_SESSION_KEY] = status
    request.session[GEETEST_UID_NAME] = session_id
    response_str = gt.get_response_str()
    return HttpResponse(response_str)
Exemple #31
0
 def post(self):
     gt = GeetestLib(captcha_id, private_key)
     challenge = self.get_argument(gt.FN_CHALLENGE, "")
     validate = self.get_argument(gt.FN_VALIDATE, "")
     seccode = self.get_argument(gt.FN_SECCODE, "")
     status = self.session[gt.GT_STATUS_SESSION_KEY]
     result = gt.validate(status, challenge, validate, seccode)
     self.write(result)
Exemple #32
0
 def get(self):
     user_id = 'test'
     gt = GeetestLib(mobile_geetest_id, mobile_geetest_key)
     status = gt.pre_process(user_id)
     self.session[gt.GT_STATUS_SESSION_KEY] = status
     self.session["user_id"] = user_id
     response_str = gt.get_response_str()
     self.write(response_str)
Exemple #33
0
 def post(self):
     gt = GeetestLib(captcha_id, private_key)
     challenge = self.get_argument(gt.FN_CHALLENGE, "")
     validate = self.get_argument(gt.FN_VALIDATE, "")
     seccode = self.get_argument(gt.FN_SECCODE, "")
     status = self.session[gt.GT_STATUS_SESSION_KEY]
     result = gt.validate(status, challenge, validate, seccode)
     self.write(result)
Exemple #34
0
 def get(self):
     user_id = 'firesun'
     gt = GeetestLib(captcha_id, private_key)
     status = gt.pre_process(user_id)
     self.session[gt.GT_STATUS_SESSION_KEY] = status
     self.session["user_id"] = user_id
     response_str = gt.get_response_str()
     self.write(response_str)
Exemple #35
0
def pcgetcaptcha(request):
    """极验验证函数"""
    user_id = 'test'  # 可自行设置
    gt = GeetestLib(pc_geetest_id, pc_geetest_key)
    status = gt.pre_process(user_id)
    request.session[gt.GT_STATUS_SESSION_KEY] = status
    request.session["user_id"] = user_id
    response_str = gt.get_response_str()
    return HttpResponse(response_str)
Exemple #36
0
def validate_capthca():
    gt = GeetestLib(captcha_id, private_key)
    status = session[gt.GT_STATUS_SESSION_KEY]
    challenge = request.form[gt.FN_CHALLENGE]
    validate = request.form[gt.FN_VALIDATE]
    seccode = request.form[gt.FN_SECCODE]
    gt = GeetestLib(captcha_id, private_key)
    result = gt.validate(status, challenge, validate, seccode)
    return result
Exemple #37
0
def get_captcha():
    geetest_user_id = random.randint(1, 100)
    gt = GeetestLib(current_app.config['GEETEST_ID'],
                    current_app.config['GEETEST_KEY'])
    status = gt.pre_process(geetest_user_id)
    session[gt.GT_STATUS_SESSION_KEY] = status
    session["geetest_user_id"] = geetest_user_id
    response_str = gt.get_response_str()
    return response_str
Exemple #38
0
def validate(request):
    if request.method == "POST":
        gt = GeetestLib(captcha_id, private_key)
        challenge = request.POST.get(gt.FN_CHALLENGE, '')
        validate = request.POST.get(gt.FN_VALIDATE, '')
        seccode = request.POST.get(gt.FN_SECCODE, '')
        status = request.session[gt.GT_STATUS_SESSION_KEY]
        result = gt.validate(status, challenge, validate, seccode)
        return HttpResponse(result)
    return HttpResponse("error")
Exemple #39
0
def ajax_validate():
    gt = GeetestLib(captcha_id, private_key)
    challenge = request.form[gt.FN_CHALLENGE]
    validate = request.form[gt.FN_VALIDATE]
    seccode = request.form[gt.FN_SECCODE]
    status = session[gt.GT_STATUS_SESSION_KEY]

    if status:
        result = gt.success_validate(challenge, validate, seccode)
    else:
        result = gt.failback_validate(challenge, validate, seccode)

    return result
Exemple #40
0
def validate_captcha(request):
    if request.is_ajax:
        gt = GeetestLib(settings.CAPTCHA_PUB, settings.CAPTCHA_PRI)
        status = request.session[gt.GT_STATUS_SESSION_KEY]
        challenge = request.POST['challenge']
        validate = request.POST['validate']
        seccode = request.POST['seccode']
        if status:
            result = gt.success_validate(challenge, validate, seccode)
        else:
            result = gt.failback_validate(challenge, validate, seccode)
        return OKAY if result else FAIL
    return ERROR
Exemple #41
0
def pc_validate_captcha():
    gt = GeetestLib(pc_geetest_id, pc_geetest_key)
    challenge = request.form[gt.FN_CHALLENGE]
    validate = request.form[gt.FN_VALIDATE]
    seccode = request.form[gt.FN_SECCODE]
    status = session[gt.GT_STATUS_SESSION_KEY]
    user_id = session["user_id"]
    if status:
        result = gt.success_validate(challenge, validate, seccode, user_id)
    else:
        result = gt.failback_validate(challenge, validate, seccode)
    result = "<html><body><h1>登录成功</h1></body></html>" if result else "<html><body><h1>登录失败</h1></body></html>"
    return result
Exemple #42
0
def mobile_ajax_validate():
    gt = GeetestLib(mobile_geetest_id,mobile_geetest_key)
    challenge = request.form[gt.FN_CHALLENGE]
    validate = request.form[gt.FN_VALIDATE]
    seccode = request.form[gt.FN_SECCODE]
    status = session[gt.GT_STATUS_SESSION_KEY]
    user_id = session["user_id"]
    if status:
        result = gt.success_validate(challenge, validate, seccode, user_id,data='',userinfo='')
    else:
        result = gt.failback_validate(challenge, validate, seccode)
    result = {"status":"success"} if result else {"status":"fail"}
    return json.dumps(result)
Exemple #43
0
def validate_capthca(request):
    gt = GeetestLib(settings.GEETEST_CAPTCHAID, settings.GEETEST_PRIVATEKEY)
    status = request.session[gt.GT_STATUS_SESSION_KEY]
    challenge = request.POST[gt.FN_CHALLENGE]
    validate = request.POST[gt.FN_VALIDATE]
    seccode = request.POST[gt.FN_SECCODE]
    if status:
        result = gt.success_validate(challenge, validate, seccode)
    else:
        result = gt.failback_validate(challenge, validate, seccode)
    request.session['isValidated'] = result
    result = stateCode.SUCCESS if result else stateCode.ERROR
    return JsonResponse({'state': result, 'info': _('validate failed')})
Exemple #44
0
def validate_capthca():
    gt = GeetestLib(captcha_id, private_key)
    challenge = request.form[gt.FN_CHALLENGE]
    validate = request.form[gt.FN_VALIDATE]
    seccode = request.form[gt.FN_SECCODE]
    status = session[gt.GT_STATUS_SESSION_KEY]
    user_id = session["user_id"]
    if status:
        result = gt.success_validate(challenge, validate, seccode, user_id)
    else:
        result = gt.failback_validate(challenge, validate, seccode)
    result = "success" if result else "fail"
    return result
Exemple #45
0
 def post(self):
     gt = GeetestLib(pc_geetest_id, pc_geetest_key)
     challenge = self.get_argument(gt.FN_CHALLENGE, "")
     validate = self.get_argument(gt.FN_VALIDATE, "")
     seccode = self.get_argument(gt.FN_SECCODE, "")
     status = self.session[gt.GT_STATUS_SESSION_KEY]
     user_id = self.session["user_id"]
     if status:
         result = gt.success_validate(challenge, validate, seccode, user_id)
     else:
         result = gt.failback_validate(challenge, validate, seccode)
         self.session["user_id"] = user_id
     result = "<html><body><h1>登录成功</h1></body></html>" if result else "<html><body><h1>登录失败</h1></body></html>"
     self.write(result)
Exemple #46
0
 def post(self):
     gt = GeetestLib(mobile_geetest_id, mobile_geetest_key)
     challenge = self.get_argument(gt.FN_CHALLENGE, "")
     validate = self.get_argument(gt.FN_VALIDATE, "")
     seccode = self.get_argument(gt.FN_SECCODE, "")
     status = self.session[gt.GT_STATUS_SESSION_KEY]
     user_id = self.session["user_id"]
     if status:
         result = gt.success_validate(challenge, validate, seccode, user_id)
     else:
         result = gt.failback_validate(challenge, validate, seccode)
         self.session["user_id"] = user_id
     result = result = {"status":"success"} if result else {"status":"fail"}
     self.write(json.dumps(result))
Exemple #47
0
def ajax_validate(request):
    if request.method == "POST":
        gt = GeetestLib(captcha_id, private_key)
        challenge = request.POST.get(gt.FN_CHALLENGE, '')
        validate = request.POST.get(gt.FN_VALIDATE, '')
        seccode = request.POST.get(gt.FN_SECCODE, '')
        status = request.session[gt.GT_STATUS_SESSION_KEY]
        user_id = request.session["user_id"]
        if status:
            result = gt.success_validate(challenge, validate, seccode, user_id)
        else:
            result = gt.failback_validate(challenge, validate, seccode)
        result = {"status":"success"} if result else {"status":"fail"}
        return HttpResponse(json.dumps(result))
    return HttpResponse("error")
Exemple #48
0
def validate(request):
    if request.method == "POST":
        gt = GeetestLib(captcha_id, private_key)
        challenge = request.POST.get(gt.FN_CHALLENGE, '')
        validate = request.POST.get(gt.FN_VALIDATE, '')
        seccode = request.POST.get(gt.FN_SECCODE, '')
        status = request.session[gt.GT_STATUS_SESSION_KEY]
        user_id = request.session["user_id"]
        if status:
            result = gt.success_validate(challenge, validate, seccode, user_id)
        else:
            result = gt.failback_validate(challenge, validate, seccode)
        result = "<html><body><h1>登录成功</h1></body></html>" if result else "<html><body><h1>登录失败</h1></body></html>"
        return HttpResponse(result)
    return HttpResponse("error")
Exemple #49
0
def validate_capthca():
    session['vote'] = 0
    gt = GeetestLib(captcha_id, private_key)
    challenge = request.form[gt.FN_CHALLENGE]
    validate = request.form[gt.FN_VALIDATE]
    seccode = request.form[gt.FN_SECCODE]
    status = session[gt.GT_STATUS_SESSION_KEY]
    user_id = session["user_id"]
    session['refer'] = request.referrer
    if status:
        result = gt.success_validate(challenge, validate, seccode, user_id)
    else:
        result = gt.failback_validate(challenge, validate, seccode)
    result = "success" if result else "fail"
    if result == "success":
        session['vote'] = 1
        return redirect(session['refer'])
    else:
        flash("验证码错误!")
        return redirect(session['refer'])
Exemple #50
0
def validate_capthca():

    if request.method == "POST":
        gt = GeetestLib(captcha_id, private_key)
        challenge = request.form[gt.FN_CHALLENGE]
        validate = request.form[gt.FN_VALIDATE]
        seccode = request.form[gt.FN_SECCODE]
        status = session[gt.GT_STATUS_SESSION_KEY]
        user_id = session.get("user_id", None)

        if status:
            result = gt.success_validate(challenge, validate, seccode, user_id)
        else:
            result = gt.failback_validate(challenge, validate, seccode)

        if result:
            # 验证安全,完成登录
            _user =  redis_store.get("pre_login")
            if _user:
                session["logged_in"] = _user
            # 验证安全,完成添加留言
            _body = redis_store.hgetall("pre_add_msg")
            if _body:
                title = _body.get("title")
                message = _body.get("message")

                user = User.query.filter_by(username = session["logged_in"]).first()
                msg = Message(title=title, body=message, user = user)

                db.session.add(msg)
                db.session.commit()
            return redirect("/")
        else:
            return redirect("/login")

    return render_template("validate.html")
Exemple #51
0
def getcaptcha(request):
    gt = GeetestLib(captcha_id, private_key)
    status, response_str = gt.pre_process()
    request.session[gt.GT_STATUS_SESSION_KEY] = status
    return HttpResponse(response_str)
Exemple #52
0
def get_captcha(request):
    gt =  GeetestLib(settings.GEETEST_CAPTCHAID, settings.GEETEST_PRIVATEKEY)
    status = gt.pre_process()
    request.session[gt.GT_STATUS_SESSION_KEY] = status
    response_str = gt.get_response_str()
    return JsonResponse({'state': stateCode.SUCCESS, 'responseStr': response_str})
Exemple #53
0
 def get(self):
     gt = GeetestLib(captcha_id, private_key)
     status, response_str = gt.pre_process()
     self.session[gt.GT_STATUS_SESSION_KEY] = status
     self.write(response_str)
Exemple #54
0
def get_captcha(request):
    if request.is_ajax:
        gt =  GeetestLib(settings.CAPTCHA_PUB, settings.CAPTCHA_PRI)
        status = gt.pre_process()
        request.session[gt.GT_STATUS_SESSION_KEY] = status
        return response('okay', json.loads(gt.get_response_str()))