Exemplo n.º 1
0
    def post(self, request, *args, **kwargs):
        # form表单验证
        login_form = LoginForm(request.POST)
        if login_form.is_valid():
            user_name = login_form.cleaned_data['username']
            password = login_form.cleaned_data['password']

            # 用于通过用户名查询用户是否存在
            user = authenticate(username=user_name, password=password)
            # from apps.users.models import UserProfile
            # 通过用户名查询用户
            # 需要先加密再通过加密之后密码查询
            # 对整个django后端后续代码不好
            # user=UserProfile.objects.get(username=user_name,password=password)
            if user is not None:
                #                        查询到用户
                login(request, user)
                #         登录成功之后应该怎么返回页面
                return HttpResponseRedirect(reverse('index'))
            else:
                #             未查询到用户
                return render(request, 'login.html', {
                    'msg': '用户名或密码错误',
                    'login_form': login_form
                })
        else:
            return render(request, 'login.html', {'login_form': login_form})
Exemplo n.º 2
0
    def post(self, request, *args, **kwargs):
        # 使用表单验证可简化
        login_form = LoginForm(request.POST)

        if login_form.is_valid():
            # 用于通过用户和密码查询用户是否存在
            user_name = login_form.cleaned_data["username"]
            password = login_form.cleaned_data["password"]
            user = authenticate(username=user_name, password=password)
            # 1.通过用户名查询到用户
            # 2.需要先加密再通过加密之后的密码查询
            # from apps.users.models import UserProfile
            # user = UserProfile.objects.get(username=user_name, password=password)
            if user is not None:
                # 查询到用户
                login(request, user)
                # 登陆成功之后该如何返回页面
                return HttpResponseRedirect(reverse("index"))
            else:
                # 未查询到用户
                return render(request, "login.html", {
                    "msg": "用户名或密码错误",
                    "login_form": login_form
                })
        else:
            return render(request, "login.html", {"login_form": login_form})
Exemplo n.º 3
0
    def post(self, request):
        """登录请求"""
        # 接受数据
        # username = request.POST.get('username', "")
        # password = request.POST.get('password', "")

        # 校验数据
        login_form = LoginForm(request.POST)
        # 判断是够通过表单验证
        if login_form.is_valid():
            # 取出表单清洗的数据
            username = login_form.cleaned_data['username']
            password = login_form.cleaned_data['password']

            # 判断用户名和密码是否正确
            user = authenticate(username=username, password=password)
            if user is not None:  # 用户名密码正确
                # 记住用户登录状态
                login(request, user)

                # 获取用户来前的页面
                url_next = request.GET.get('next', reverse('index'))

                # 返回首页
                return redirect(url_next)

            else:  # 密码不正确
                return render(request, 'login.html', {'errage': '用户名或密码不正确', 'login_form': login_form})
        else:
            # 返回数据
            return render(request, 'login.html', {'login_form': login_form, 'res':1})
Exemplo n.º 4
0
    def post(self, request, *args, **kwargs):
        # 表单验证
        login_form = LoginForm(request.POST)
        if login_form.is_valid():
            user_name = login_form.cleaned_data['username']
            password = login_form.cleaned_data['password']

            # if not user_name:
            #     return render(request, 'login.html', {'msg': '请输入用户名!'})
            # if not password:
            #     return render(request, 'login.html', {'msg': '请输入密码!'})
            # if len(password) < 3:
            #     return render(request, 'login.html', {'msg': '密码格式错误!'})

            # 通过用户名和密码查询用户是否存在
            user = authenticate(username=user_name, password=password)
            # from apps.users.models import UserProfile
            # 1通过用户名查询用户 (不推荐)
            # 2需要先加密在通过加密后的密码查询用户名密码是否匹配
            # user=UserProfile.objects.get(username=user_name,password=password)

            # 用于查询用户是否存在
            if user is not None:
                # 查询到用户
                login(request, user)
                # 登陆成功之后,如何返回页面
                return HttpResponseRedirect(reverse('index'))
            else:
                # 未查询到用户
                return render(request, 'login.html', {
                    'msg': '用户名或密码错误!',
                    'login_form': login_form
                })
        else:
            return render(request, 'login.html', {'login_form': login_form})
Exemplo n.º 5
0
    def post(self,request):
        # 实例化
        login_form = LoginForm(request.POST)
        if login_form.is_valid():
            # 获取用户提交的用户名和密码
            user_name = request.POST.get('username', None)
            pass_word = request.POST.get('password', None)
            # 成功返回user对象,失败None
            user = authenticate(username=user_name, password=pass_word)
            # 如果不是null说明验证成功
            if user is not None:
                if user.is_active==1:
                    # 著有注册激活才能登录
                    login(request, user)

                elif user.is_active == 0:
                    return render(request, 'login.html', {'msg': '用户未激活' })
                return render(request, 'index.html')

            # 只有当用户名或密码不存在时,才返回错误信息到前端
            else:
                return render(request, 'login.html', {'msg': '用户名或密码错误','login_form':login_form})

        # form.is_valid()已经判断不合法了,所以这里不需要再返回错误信息到前端了
        else:
            return render(request,'login.html',{'msg':'用户名或密码错误','login_form':login_form})
Exemplo n.º 6
0
    def post(self, request, *args, **kwargs):
        user_name = request.POST.get("username", "")
        password = request.POST.get("password", "")

        # from verification
        login_form = LoginForm(request.POST)

        if login_form.is_valid():
            user_name = login_form.cleaned_data["username"]
            password = login_form.cleaned_data["password"]
            user = authenticate(username=user_name, password=password)
            if user is not None:
                # find the user and password
                login(request, user)
                # after login, return to page
                return HttpResponseRedirect(reverse("index"))

            else:
                return render(
                    request, "login.html", {
                        "msg": "username or password incorrect",
                        "login_form": login_form
                    })
        #
        else:
            return render(request, "login.html", {"login_form": login_form})
Exemplo n.º 7
0
    def post(self, request):
        # 实例化
        login_form = LoginForm(request.POST)
        if login_form.is_valid():

            user_name = request.POST.get('username', None)
            pass_word = request.POST.get('password', None)

            user = authenticate(username=user_name, password=pass_word)
            if user is not None:
                if user.is_active:
                    # 用户激活才能登录
                    # 如果用户信息不为空  则直接登录
                    login(request, user)
                    return render(request, 'index.html')
                else:
                    return render(request, "login.html", {
                        'msg': "用户名或密码错误",
                        'login_form': login_form
                    })
            else:
                return render(request, 'login.html', {
                    'msg': "用户名和密码错误",
                    'login_form': login_form
                })
        # 这里已经判断不合法了,所以这里不需要显示错误信息到前端
        else:
            return render(request, 'login.html', {'login_form': login_form})
Exemplo n.º 8
0
 def post(self, request, *args, **kwargs):
     #表单验证
     login_form = LoginForm(request.POST)
     banners = Banner.objects.all()[:3]
     if login_form.is_valid():
         #用于前后端判断
         user_name = login_form.cleaned_data["username"]
         password = login_form.cleaned_data["password"]
         user = authenticate(username=user_name, password=password)
         if user is not None:
             #登录
             login(request, user)
             #返回页面
             next = request.GET.get("next", "")
             if next:
                 return HttpResponseRedirect(next)
             return HttpResponseRedirect(reverse("index"))
         else:
             #登录失败
             banners = Banner.objects.all()[:3]
             return render(
                 request, "login.html", {
                     "msg": "用户名或密码错误",
                     "login_form": login_form,
                     "banners": banners
                 })
     else:
         return render(request, "login.html", {
             "login_form": login_form,
             "banners": banners
         })
Exemplo n.º 9
0
    def post(self, request, *args, **kwarg):
        login_form = LoginForm(request.POST)
        # user_name = request.POST.get("username", "")
        # password = request.POST.get("password", "")

        # if not user_name:
        #     return render(request, "login.html", {"msg": "用户名或密码错误"})
        #
        # if not password:
        #     return render(request, "login.html", {"msg": "パスワードを入力してください"})

        # ユーザーの検証

        if login_form.is_valid():
            user_name = login_form.cleaned_data["username"]
            password = login_form.cleaned_data["password"]
            user = authenticate(username=user_name, password=password)

            if user is not None:
                login(request, user)
                next = request.GET.get("next", "")
                if next:
                    return HttpResponseRedirect(next)
                #     return HttpResponseRedirect(next)
                return HttpResponseRedirect(reverse("index"))
            else:
                return render(request, "login.html", {
                    "msg": "用户名或密码错误",
                    "login_form": login_form
                })
        else:
            return render(request, "login.html", {"login_form": login_form})
Exemplo n.º 10
0
    def post(self, request, *args, **kwargs):
        #通过forms.py进行表单验证
        login_form = LoginForm(request.POST)
        banners = Banner.objects.all()[:3]
        if login_form.is_valid():
            #----------------------------通过forms.py进行表单验证并拿取数据-------------
            user_name = login_form.cleaned_data["username"]
            password = login_form.cleaned_data["password"]
            # ----------------------------------------------------------------------
            #authenticate用于通过用户名和密码查询用户是否存在
            user = authenticate(username=user_name, password=password)
            if user is not None:
                #查询到用户⬆,登陆成功⬇
                login(request, user)
                #登陆成功后回首页
                next = request.GET.get("next", "")
                if next:
                    return HttpResponseRedirect(next)
                return HttpResponseRedirect(reverse("index"))
            else:
                #未查询到用户,回注册页
                return render(
                    request, "login.html", {
                        "msg": "用户名或密码错误",
                        "login_form": login_form,
                        "banners": banners
                    })

        else:
            return render(request, "login.html", {
                "login_form": login_form,
                "banners": banners
            })
Exemplo n.º 11
0
 def post(self, request, *args, **kwargs):
     login_form = LoginForm(request.POST)
     banners = Banner.objects.all()[:3]
     if login_form.is_valid():
         user_name = login_form.cleaned_data['username']
         password = login_form.cleaned_data['password']
         user = authenticate(username=user_name, password=password)
         if user is not None:
             login(request, user)
             next = request.GET.get('next', '')
             if next:
                 return HttpResponseRedirect(next)
             return HttpResponseRedirect(reverse('index'))
         else:
             return render(
                 request, 'login.html', {
                     'msg': '用户名或密码错误',
                     'login_form': login_form,
                     'banners': banners
                 })
     else:
         return render(request, 'login.html', {
             'login_form': login_form,
             'banners': banners
         })
Exemplo n.º 12
0
    def post(self, request, *args, **kwargs):
        #表单验证(表单:用户通过前端提交过来的数据)
        # if not user_name:
        #     return render(request, "login.html", {"msg": "user is not exist"})
        # if not password:
        #     return render(request, "login.html", {"msg": "password is wrong"})
        # if len(password) < 3:
        #     return render(request, "login.html", {"msg": "password is wrong"})
        login_form = LoginForm(request.POST)    #1.表单验证;2.对数据加工处理
        user_name = request.POST.get("username", "")
        password = request.POST.get("password", "")

        if login_form.is_valid():
            # 用于通过用户和密码查询用户是否存在
            # user_name = login_form.cleaned_data["username"]
            # password = login_form.cleaned_data["password"]
            user = authenticate(username=user_name, password=password)
            #为什么不采用UserProfile方法
            #1. 通过用户名查询到用户
            #2. 需要先加密再通过加密之后的密码查询
            #user = UserProfile.objects.get(username=user_name, password=password)
            if user is not None:
                #查询到用户
                login(request, user)
                #登陆成功之后应该怎么返回页面
                next = request.GET.get("next", "")
                if next:
                    return HttpResponseRedirect(next)
                return HttpResponseRedirect(reverse("index"))
            else:
                #未查询到用户
                return render(request, "login.html", {"msg":"user is not exist or password is wrong", "login_form": login_form})
        else:
            return render(request, "login.html", {"login_from": login_form})
Exemplo n.º 13
0
    def post(self, request, *args, **kwargs):
        login_form = LoginForm(request.POST)
        if login_form.is_valid():
            user_name = login_form.cleaned_data["username"]
            password = login_form.cleaned_data["password"]
            # user_name = request.POST.get("username", "")
            # password = request.POST.get("password", "")

            # if not user_name:
            #     return render(request, "login.html", {"msg":"请输入用户名"})
            # if not password:
            #     return render(request, "login.html", {"msg":"请输入密码"})
            # if len(password)<3:
            #     return render(request, "login.html", {"msg":"密码格式不正确"})
            #通过用户和密码查询用户是否存在
            user = authenticate(username=user_name, password=password)
            # from apps.users.models import UserProfile
            # #1.通过用户名查询到用户
            # #2.先加密在通过加密后的密码查询
            # user = UserProfile.objects.get(username=user_name, password=password)
            if user is not None:
                #查询到用户
                login(request, user)
                #登陆成功之后怎么返回页面
                return HttpResponseRedirect(reverse('index'))
            else:
                return render(request, "login.html", {"msg": "用户名或密码错误"})
        else:
            #未查询到用户
            return render(request, "login.html", {"login_form": login_form})
Exemplo n.º 14
0
    def post(self, request, *args, **kwargs):
        #表单验证
        login_form = LoginForm(request.POST)
        banners = Banner.objects.all()[:3]

        if login_form.is_valid():
            user_name = login_form.cleaned_data['username']
            password = login_form.cleaned_data['password']
            #通过用户名和密码查询用户是否存在
            user = authenticate(username=user_name, password=password)

            if user is not None:
                #查询到用户
                login(request, user)
                #登录成功后返回页面
                next = request.GET.get("next", "")
                if next:
                    return HttpResponseRedirect(next)
                return HttpResponseRedirect(reverse("index"))
            else:
                #未查询到用户
                return render(
                    request, "login.html", {
                        "msg": "用户名或密码错误",
                        "login_form": login_form,
                        "banners": banners,
                    })

        else:
            return render(request, "login.html", {
                "login_form": login_form,
                "banners": banners,
            })
Exemplo n.º 15
0
    def post(self, request, *args, **kwargs):
        # 表单验证--此方法造成代码冗余不适用
        # username = request.POST.get("username", "")
        # password = request.POST.get("password", "")
        # if not username:
        #     return render(request, "login.html", {"msg": "请输入用户名"})
        # if not password:
        #     return render(request, "login.html", {"msg": "请输入密码"})

        # 表单验证
        login_form = LoginForm(request.POST)
        banners = Banner.objects.all()[:3]
        if login_form.is_valid():
            # 用于通过用户和密码查询用户是否存在
            username = login_form.cleaned_data["username"]
            password = login_form.cleaned_data["password"]

            user = authenticate(username=username, password=password)
            if user is not None:
                # 查询到用户
                login(request, user)
                # 登录成功之后返回页面
                # return render(request, "index.html") # 登录成功后url无法重定向
                next = request.GET.get("next", "")
                if next:
                    return HttpResponseRedirect(next)
                return HttpResponseRedirect(reverse("index"))
            else:
                # 未查询到用户
                return render(request, "login.html", {"msg": "用户名或密码错误", "login_form": login_form, "banners": banners})
        else:
            return render(request, "login.html", {"login_form": login_form, "banners": banners})
Exemplo n.º 16
0
    def post(self, request, *args, **kwargs):
        # 表单验证
        # 把post提交的信息传递给自定义的form类
        login_form = LoginForm(request.POST)
        # 如果is_valid为true,说明验证通过

        banners = Banner.objects.all()[:3]

        if login_form.is_valid():
            # 通过cleaned_data来获取用户名和密码,cleaned_data是dict格式
            username = login_form.cleaned_data.get('username')
            password = login_form.cleaned_data.get('password')
            # 不建议自己去数据库查,因为密码是经过计算加密的,所以用django自己封装的authenticate更好
            user = authenticate(username=username, password=password)
            if user:
                # 使用login函数帮助我们登录,这里会去取session_id,并把它保存到cookie中
                login(request, user)
                next = request.GET.get('next', '')
                if next:
                    return HttpResponseRedirect(next)
                return HttpResponseRedirect(reverse('index'))
            else:
                return render(
                    request, 'login.html', {
                        'msg': '用户名或密码错误',
                        'login_form': login_form,
                        'banners': banners,
                    })
        else:
            return render(request, 'login.html', {
                'login_form': login_form,
                'banners': banners,
            })
Exemplo n.º 17
0
    def post(self, request, *args, **kwargs):
        # 表单验证
        login_form = LoginForm(request.POST)
        if login_form.is_valid():
            # 用于通过用户名和密码查询用户是否存在
            user_name = login_form.cleaned_data["username"]  # 获取form处理后的数据
            password = login_form.cleaned_data["password"]

            user = authenticate(username=user_name, password=password)

            if user is not None:
                # django自带login方法,自动设置sessionid
                login(request, user)

                # 登录成功之后返回原页面
                next = request.GET.get("next", "")
                if next:
                    return HttpResponseRedirect(next)

                return HttpResponseRedirect(reverse("index"))
            else:
                return render(request, "login.html", {
                    "msg": "用户名或密码错误",
                    "login_form": login_form
                })
        else:
            return render(request, "login.html", {"login_form": login_form})
Exemplo n.º 18
0
    def post(self, request, *args, **kwargs):
        re_dict = {}
        login_form = LoginForm(request.POST)

        if login_form.is_valid():
            user_name = login_form.cleaned_data["username"]
            password = login_form.cleaned_data["password"]

            user = authenticate(username=user_name, password=password)

            if user is not None:
                re_dict["status"] = "success"
                # create code
                code = generate_random(4, 0)
                re_dict["status"] = "success"
                r = redis.Redis(host=REDIS_HOST,
                                port=REDIS_PORT,
                                db=0,
                                charset="utf8",
                                decode_responses=True)
                r.set(str(user_name), code)
                r.expire(str(user_name), 60 * 30)  # 30 mins expired

                #create qrcode image
                qrCodeIma = qrcode.make(str(code))
                qrCodeImaPath = "static/qrimages/" + user_name + ".jpg"
                qrCodeIma.save(qrCodeImaPath)

            else:
                re_dict["status"] = "error"
            return JsonResponse(re_dict)
Exemplo n.º 19
0
 def post(self, request, *args, **kwargs):
     #表单验证
     login_form = LoginForm(request.POST)
     banners = Banner.objects.all()[:3]
     if login_form.is_valid():
         #用于通过用户和密码查询用户是否存在
         user_name = login_form.cleaned_data["username"]
         password = login_form.cleaned_data["password"]
         user = authenticate(username=user_name, password=password)
         #1. 通过用户名查询到用户
         #2. 需要先加密再通过加密之后的密码查询
         # user = UserProfile.objects.get(username=user_name, password=password)
         if user is not None:
             #查询到用户
             login(request, user)
             #登录成功之后应该怎么返回页面
             next = request.GET.get("next", "")
             if next:
                 return HttpResponseRedirect(next)
             return HttpResponseRedirect(reverse("index"))
         else:
             #未查询到用户
             return render(
                 request, "login.html", {
                     "msg": "用户名或密码错误",
                     "login_form": login_form,
                     "banners": banners
                 })
     else:
         return render(request, "login.html", {
             "login_form": login_form,
             "banners": banners
         })
Exemplo n.º 20
0
 def post(self, request, *args, **kwargs):
     # 表单验证
     login_form = LoginForm(request.POST)
     banners = Banner.objects.all()[:3]
     
     if login_form.is_valid():
         username = login_form.cleaned_data['username']
         password = login_form.cleaned_data['password']
         
         # 验证用户是否存在
         user = authenticate(username=username, password=password)
         if user:
             login(request, user)
             next = request.GET.get('next', '')
             # 登录成功后跳转到首页
             if next:
                 return HttpResponseRedirect(next)
             return HttpResponseRedirect(reverse('index'))
         else:
             # 未查询到用户
             
             return render(request, 'login.html', {
                 'message': '用户名或密码错误',
                 'login_form': login_form,
                 'banners': banners,
             })
     else:
         return render(request, 'login.html', {
             'login_form': login_form,
             'banners': banners,
         })
Exemplo n.º 21
0
 def post(self, request):
     login_form = LoginForm(request.POST)
     # user_name = request.POST.get('username','')
     # password = request.POST.get('password','')
     # 后端来验证登录信息
     # if not user_name:
     #     return render(request, 'login.html', {'msg': '请输入用户名'})
     # if not password:
     #     return render(request, 'login.html', {'msg': '请输入密码'})
     # if len(password) < 3:
     #     return render(request, 'login.html', {'msg': '密码格式不正确'})
     # 表单验证
     banner = Banner.objects.all()[:3]
     # 验证用户是否存在
     if login_form.is_valid():
         user_name = login_form.cleaned_data['username']
         password = login_form.cleaned_data['password']
         user = authenticate(username=user_name, password=password)
         if user is not None:
             login(request, user)
             next = request.GET.get('next', '')
             if next:
                 return HttpResponseRedirect(next)
             return HttpResponseRedirect(reverse('index'))
         else:
             return render(request, 'login.html', {
                 "msg": '用户名或密码错误',
                 'login_form': login_form,
                 "banners": banner
             })
     else:
         return render(request, 'login.html', {
             'login_form': login_form,
             "banners": banner
         })
Exemplo n.º 22
0
    def post(self, request, *args, **kwargs):
        #表单验证
        login_form = LoginForm(request.POST)
        banners = Banner.objects.all()[:3]
        if login_form.is_valid():
            #用于通过用户和密码查询用户是否存在
            user_name = login_form.cleaned_data["username"]
            password = login_form.cleaned_data["password"]
            user = authenticate(username=user_name, password=password)
            #1. 通过用户名查询到用户
            #2. 需要先加密再通过加密之后的密码查询
            # user = UserProfile.objects.get(username=user_name, password=password)
            if user is not None:
                #查询到用户
                login(request, user)
                #登录成功之后应该怎么返回页面
                next = request.GET.get("next", "")
                if next:
                    return HttpResponseRedirect(next)
                return HttpResponseRedirect(reverse("index"))
            else:
                #未查询到用户
                return render(request, "login.html", {"msg":"用户名或密码错误", "login_form": login_form, "banners":banners})
        else:
            return render(request, "login.html", {"login_form": login_form,
                                                  "banners":banners})


# class ForgetPwdView(View):
#     def get(self,request):
#         forget_form = ForgetForm()
#         return render(request,'forgetpwd.html',{"forget_form":forget_form})
#
#
#     def post(self,request):
#         forget_form = ForgetForm(request.POST)
#         if forget_form.is_valid():
#             email = request.POST.get('email','')
#             if UserProfile.objects.filter(email=email):
#                 send_register_email(email, 'forget')
#                 return render(request, 'send_success.html')
#             else:return render(request, "forgetpwd.html",{'forget_form':forget_form,"msg":'用户不存在'})
#         else:
#             return render(request,'forgetpwd.html',{"forget_form":forget_form})

#验证数据库的验证码与访问邮箱链接地址是否匹配!
# class ActiveUserView(View):
#     def get(self,request,active_code):
#         all_recode = EmailVerifyRecord.objects.filter(code=active_code)
#         if all_recode:
#             for recode in all_recode:
#                 email = recode.email
#                 user = UserProfile.objects.get(email=email) #注意是User!即在auth_user表下比对数据!方便下一步进行修改user表的is_active状态!
#                 user.is_active = True
#                 user.save()
#             return render(request, 'login.html')
#         else:return render(request, 'active_fail.html')
Exemplo n.º 23
0
    def post(self, request, *args, **kwargs):
        login_form = LoginForm(request.POST)

        banners = Banner.objects.all().order_by("-add_time")[:3]

        if login_form.is_valid():

            # user_name= request.POST.get("username","")
            # password= request.POST.get("password","")
            # if not user_name:
            #     return render(request, "login.html", {"msg": "请输入用户名"})
            #
            # if not password:
            #     return render(request, "login.html", {"msg": "请输入密码"})

            user_name = login_form.cleaned_data["username"]
            password = login_form.cleaned_data["password"]
            user = authenticate(username=user_name, password=password)
            # user = authenticate(username="******", password="******")
            if user is not None:
                if user.is_active:
                    login(request, user)
                    next = request.GET.get("next", "")
                    message = UserMessage()
                    message.user = user
                    message.messgae = "登录成功!"
                    message.has_read = False
                    message.save()
                    if next:
                        return HttpResponseRedirect(next)
                    else:
                        return HttpResponseRedirect(reverse("index"))
                else:
                    msg = "用户未激活!"
                    login_form._errors["msg"] = login_form.error_class([msg])
                    return render(
                        request, "login.html", {
                            "msg": "用户未激活!请前往邮箱激活",
                            "login_form": login_form,
                            "banners": banners,
                        })

            else:
                print(233)
                return render(
                    request, "login.html", {
                        "msg": "用户名或密码错误",
                        "login_form": login_form,
                        "banners": banners,
                    })

        else:
            return render(request, "login.html", {
                "login_form": login_form,
                "banners": banners,
            })
Exemplo n.º 24
0
def login(request):	
	
	if request.method == 'POST':

		login_form = LoginForm(request.POST)

		if login_form.is_valid():

			user_logging = User.objects.filter(
				email = login_form.cleaned_data.get('email')
				).first()

			if user_logging is not None:

				is_authenticated = check_password(
					login_form.cleaned_data.get('password'),
					user_logging.password
					)

				if is_authenticated:
					
					user_details = {
					'id' : user_logging.id,
					'name' : user_logging.name,
					'alias' : user_logging.alias,
					'email' : user_logging.email,
					}

					request.session['is_authenticated'] = True
					request.session['user'] = user_details

					messages.success(request, 'Welcome ' + user_logging.name + '!')
					return HttpResponseRedirect( reverse('books:list') )

				else:
					messages.error(request, 'Invalid username and password.')
					return HttpResponseRedirect( reverse('users:index') )
						
					

			else:
				messages.error(request, 'Invalid username and password.')
				return HttpResponseRedirect( reverse('users:index') )


		else:
			print('invalid!')
			messages.error(request, 'Invalid email format or password.')
			return HttpResponseRedirect( reverse('users:index') )
	else:
		messages.error(request, 'You are not allowed to this page.')
		return HttpResponseRedirect( reverse('users:index') )
Exemplo n.º 25
0
 def post(self, request):
     login_form = LoginForm(request.POST)
     if login_form.is_valid():
         user_name = request.POST.get('username', '')
         pass_word = request.POST.get('password', '')
         user = authenticate(username=user_name, password=pass_word)
         if user is not None:
             login(request, user)
             return HttpResponseRedirect(reverse('index'))
         else:
             return render(request, 'login.html', {'msg': '用户名或者密码错误'})
     else:
         return render(request, 'login.html', {'login_form': login_form})
Exemplo n.º 26
0
 def post(self, request):
     login_form = LoginForm(request.POST)
     if login_form.is_valid():
         user_name = request.POST.get('username', '')
         pass_word = request.POST.get('password', '')
         user = authenticate(username=user_name, password=pass_word)
         if user is not None:
             login(request, user)
             return render(request, 'index.html')
         else:
             return render(request, 'login.html', {'message': '用户名或密码错误'})
     else:
         return render(request, 'login.html', {'login_form': login_form})
Exemplo n.º 27
0
def index(request):
    login_form = LoginForm(request.POST or None)

    if request.POST and login_form.is_valid():
        user = login_form.login(request)
        if user:
            login(request, user)
            return HttpResponseRedirect(
                request.POST.get('next') or reverse('index'))

    return render(request, "users/index.html", {
        "login_form": login_form,
        'next': request.GET.get('next', '')
    })
Exemplo n.º 28
0
 def post(self, request):
     login_form = LoginForm(request.POST)
     if login_form.is_valid():
         user_name = request.POST.get("username", "")
         pass_word = request.POST.get("password", "")
         user = authenticate(username=user_name, password=pass_word)
         if user is not None:
             if user.is_active:
                 login(request, user)
                 return render(request, 'index.html')
             else:
                 return render(request, 'login.html', {'msg': '用户未激活'})
         else:
             return render(request, 'login.html', {'msg': 'get a error'})
Exemplo n.º 29
0
 def post(self, request, *args, **kwargs):
     # 表单验证
     login_form = LoginForm(request.POST)
     banners = Banner.objects.filter(type=3).order_by("index")
     if login_form.is_valid():
         # 用于通过用户和密码查询用户是否存在
         user_name = login_form.cleaned_data["username"]
         password = login_form.cleaned_data["password"]
         user = authenticate(username=user_name, password=password)
         # 1. 通过用户名查询到用户
         # 2. 需要先加密再通过加密之后的密码查询
         # user = UserProfile.objects.get(username=user_name, password=password)
         if user is not None:
             # 查询到用户
             if user.is_active:
                 # 只有注册激活才能登录
                 login(request, user)
                 # 登录成功之后应该怎么返回页面
                 next = request.GET.get("next", "")
                 if next:
                     return HttpResponseRedirect(next)
                 return HttpResponseRedirect(reverse("index"))
             else:
                 all_records = EmailVerifyRecord.objects.filter(
                     email=user_name)
                 if all_records:
                     for record in all_records:
                         record.delete()
                 send_register_eamil(user.email, 'register')
                 return render(
                     request, 'login.html', {
                         'msg': '您的账户未激活,邮件已重发,请前往邮箱激活',
                         'login_form': login_form,
                         "banners": banners
                     })
         else:
             # 未查询到用户
             return render(
                 request, "login.html", {
                     "msg": "用户名或密码错误",
                     "login_form": login_form,
                     "banners": banners
                 })
     else:
         return render(request, "login.html", {
             "login_form": login_form,
             "banners": banners
         })
Exemplo n.º 30
0
 def post(self, request):
     login_form = LoginForm(request.POST)
     if login_form.is_valid():
         username = request.POST.get('username', '')
         password = request.POST.get('password', '')
         user = authenticate(username=username, password=password)
         if user is not None:
             if user.is_active:
                 login(request, user)
                 return redirect('/')
             else:
                 return render(request, 'login.html', {'msg': '用户未激活'})
         else:
             msg = '用户名或密码错误'
             return render(request, 'login.html', {'msg': msg})
     else:
         return render(request, 'login.html', {'login_form': login_form})
Exemplo n.º 31
0
def Login(request):
    """ Login form
    """
    template_file = "user-login.html"
    form = LoginForm(request.POST or None, request.FILES or None)
    next = request.POST.get('next', None)

    if form.is_valid():
        username = form.cleaned_data['login']
        password = form.cleaned_data['password']

        user = authenticate(username=username, password=password)

        if user is not None:
            if user.is_active:
                loginUser(request, user)
            else:
                messages.add_message(request, messages.ERROR, u"Inactive user")
                return redirect("user:login")
        else:
            messages.add_message(request, messages.ERROR, u"Invalid user or password")
            return redirect("user:login")


        msg = u"You're now logged in"
        messages.add_message(request, messages.SUCCESS, msg)

        if next is not None:
            return HttpResponseRedirect(next)

        return redirect("home")

    params = {
        'form': form,
    }

    if next is not None:
        params["next"] = next

    context = RequestContext(request)
    return render_to_response (
        template_file,
        params,
        context_instance = context
    )