def session_exceed_time(req): if req.method == 'GET': req.session['login_from'] = req.META.get( 'HTTP_REFERER', '/') #记住来源的url,如果没有则设置为首页('/') return render(req, "session_exceed_time.html") else: if 'sure' in req.POST: mTools = Tools() mTools.delSession(req, 'user_id') mTools.delSession(req, 'login_id') return HttpResponseRedirect('/')
def send_phone_verify_code_post(request, phone): # TODO:向手机号发送验证码 mTools = Tools() if request.method == "POST": verifyCode = mSend_verify_code.getVerifyCode() result = mSend_verify_code.sendVerifyCode(phone, verifyCode) if result == True: #成功发送验证码 request.session[ 'findingByPhoneVerifyCode'] = verifyCode #将验证码保存到session中 return HttpResponse("1") else: #发送验证码失败 mTools.delSession(request, 'phoneSetPasswordByPhone') return HttpResponse("0") else: return handler404(request)
def verify_login(req): if req.method == 'POST': #获取表单用户名和其密码 user_name = req.POST.get('userName', '') password = req.POST.get('password', '') avoid_login = req.POST.get('avoidLogin', '0') # 免登陆 mTools = Tools() user_ip = mTools.get_client_ip(req) #获取用户的IP user_id = mLogin.login( user_ip, user_name, password ) #返回0表示验证失败,返回1表示手机号或者密码有错;返回登录活动记录表的id表示登录成功,返回404表示登录被限制 if user_id == LoginStatus.SERVER_ERROR: #服务器出错 return handler500(req) elif user_id == LoginStatus.WRONG: #返回1表示手机号或者密码有错 return HttpResponse('0') elif user_id == LoginStatus.ERROR_EXCEED: #登录时,错误次数超过6次,锁住IP,返回404 return HttpResponse('2') elif user_id == LoginStatus.IS_BLACK: #该账号已经被拉黑 return HttpResponse('3') else: #验证成功 #user_have_login = mTools.getSession(req,'phone') #if user_have_login == result: # return HttpResponse('该用户已经登录,如果要重新登录,请先前往去退出该账号。') id = mLogin.activity_log(user_id, user_ip) if id == 0: return handler500(req) if avoid_login == '1': req.session.set_expiry(7 * 24 * 60 * 60) #一周免登陆 req.session['user_id'] = user_id #建立一个会话 req.session['login_id'] = id #用来在退出时,找到相应的登录记录,从而修改登录退出的时间 result = mLogout.timeout(id, user_id) #假设会话过期 if result == 0: return handler500(req) url = mTools.getSession(req, 'login_from') mTools.delSession(req, 'login_from') if url is None: url = "/" #重定向到首页 #重定向到来源的url #return HttpResponseRedirect("/") return HttpResponse("1") else: return handler404(req) #404 请求错误
def my_logout(req): mTools = Tools() user_id = mTools.getSession( req, 'user_id') #调用account.account_manage模块的类Tools的getSession()函数来获取当前会话的id if user_id is None: return HttpResponseRedirect('/sessionExceedTime/') login_id = mTools.getSession(req, 'login_id') result_code = mLogout.logout(login_id, user_id) if result_code == 0: return handler500(req) elif result_code == 666: mTools.delSession(req, 'user_id') mTools.delSession(req, 'login_id') return HttpResponseRedirect("/")
def set_new_password_by_phone(request, new_password): mTools = Tools() if request.method == "POST": #new_password = request.POST.get("newPassword",None) #if new_password is None: # return HttpResponse("0") phone = mTools.getSession(request, 'phoneSetPasswordByPhone') if phone is None: return HttpResponse("超时,请返回重新验证身份") result_code = mFind_password.findPWByPhone( phone, new_password) #调用这个函数来帮忙用户找回密码 if result_code == 0: return HttpResponse("0") elif result_code == 666: mTools.delSession(request, 'findingByPhoneVerifyCode') #会话结束 mTools.delSession(request, 'phoneSetPasswordByPhone') #会话结束 return HttpResponse("1") else: return handler404(request)
def verify_register(req): if req.method == 'POST': #点击注册按钮,需要全面检查 mTools = Tools() user_name = req.POST.get('userName', '') phone = req.POST.get('registerPhoneNumber', '') password = req.POST.get('password', '') myverifyCode = req.POST.get('verifyCode', None) #获取表单的验证码 #验证码验证 verifyCode = mTools.getSession(req, 'verifyCode') #获取会话的验证码 if myverifyCode != verifyCode: #验证码不对 return HttpResponse('0') else: mTools.delSession(req, 'verifyCode') phones = mTools.getSession(req, "phones") flag = False for i in range(len(phones)): #判断输入的电话号码是否是受到了邀请 if phones[i] == phone: flag = True break if flag == False: #电话号码不存在,返回1.没有受到邀请(尽管邀请码正确,但是可能是看到别人的或者猜中的) return HttpResponse('0') user_ip = mTools.get_client_ip(req) #获取用户的IP user_id = mRegister.register( user_name, phone, password, user_ip) #调用该函数处理这个url.数据库出错,返回0;用户已经存在,返回1;成功则返回用户的id if user_id == 0: return handler500(req) elif user_id == -1: #用户已经存在 return HttpResponse('0') else: mTools.delSession(req, 'phones') #数据传递完毕,删除该会话 mTools.delSession(req, 'verifyCode') #验证完毕,删除该验证码会话 login_id = mRegister.finishRegister( user_ip, user_id) #调用这个函数来记录用户注册成功后的活动记录,与记录登录活动记录一样 if login_id == 0: return handler500(req) else: req.session['user_id'] = user_id #建立一个会话 req.session[ 'login_id'] = login_id #用来在退出时,找到相应的登录记录,从而修改登录退出的时间 return HttpResponse('1') else: return handler404(req) #404 请求错误
def sure_publish(req): #确认发布 mTools = Tools() user_id = mTools.getSession( req, 'user_id') #调用account.account_manage模块的类Tools的getSession()函数来获取当前会话的id if user_id is None: return HttpResponseRedirect('/sessionExceedTime/') if req.method == 'POST': content = getFormData(req) #获取表单数据 #content=mTools.getSession(req,'publish_info') #从会话中取出数据 operation_id_modify = mTools.getSession(req, 'operation_id_modify') if operation_id_modify != None: #表示要进行修改发布的有效期的车的信息,在这里需要删除该车,然后重新插入 modify_result_code = mPublish_car.updateData( operation_id_modify, content) #modify_result_code=deletePublishValidTimeCar(operation_id_modify,current_user_phone_number) if modify_result_code == 0: return handler500(req) #修改发布的有效期的车的信息失败 operation_id_againPublish = mTools.getSession( req, 'operation_id_againPublish') if operation_id_againPublish != None: #表示要进行重新发布过期的车的信息,在这里需要删除该车,然后重新插入 againPublish_result_code = mPublish_car.deletePublishInalidTimeCar( operation_id_againPublish) if againPublish_result_code == 0: return handler500(req) #重新发布过期的车的信息失败 else: result_code = mPublish_car.firstPublishInsertData( user_id, content) #插入数据 if result_code == 0: return handler500(req) #发布失败 result_code = mPublish_car.firstPublishInsertData(user_id, content) #插入数据 if result_code == 0: return handler500(req) #发布失败 mTools.delSession(req, 'publish_info') #删除会话 mTools.delSession(req, 'operation_id_modify') mTools.delSession(req, 'operation_id_againPublish') return HttpResponse("1") else: return handler404(req) #404 请求错误
def deleteAllSession(req): mTools = Tools() mTools.delSession(req,'car_type') mTools.delSession(req,'car_brand') mTools.delSession(req,'car_series') mTools.delSession(req,'car_model') mTools.delSession(req,'province') mTools.delSession(req,'city') #mTools.delSession(req,'sell_area') mTools.delSession(req,'pay_method') mTools.delSession(req,'delivery_type') mTools.delSession(req,'color') mTools.delSession(req,'method_logistics')
def deleteSession(req,what): mTools = Tools() mTools.delSession(req,what) car_type = req.GET.get("carType",None) #车辆类型 car_brand = req.GET.get("brand",None) #品牌 car_series = req.GET.get("series",None) #车系 car_model = req.GET.get("carModel",None) #车款 city = req.GET.get("city",None) #城市 province = req.GET.get("province",None) #省份 #sell_area = req.GET.get("sell_area",None) #销售区域 pay_method = req.GET.get("payment",None) #付款方式 delivery_type = req.GET.get("shipType",None) #期货类型 color = req.GET.get("color",None) #颜色 method_logistics = req.GET.get("logistics",None) #物流方式 if car_type is not None: mTools.delSession(req,'car_type') if car_brand is not None: mTools.delSession(req,'car_brand') if car_series is not None: mTools.delSession(req,'car_series') if car_model is not None: mTools.delSession(req,'car_model') if province is not None: mTools.delSession(req,'province') if city is not None: mTools.delSession(req,'city') #if sell_area is not None: # mTools.delSession(req,'sell_area') if pay_method is not None: mTools.delSession(req,'pay_method') if delivery_type is not None: mTools.delSession(req,'delivery_type') if color is not None: mTools.delSession(req,'color') if method_logistics is not None: mTools.delSession(req,'method_logistics')