基于ajax实现的登录

本文详细介绍了基于Ajax的登录实现过程,包括authenticate()验证用户名和密码、login()进行登录、logout()注销用户以及User对象的方法如create_user、check_password和set_password。重点讲解了如何在后台判断用户登录状态,并通过Ajax实现无刷新登录和跳转。
摘要由CSDN通过智能技术生成

基于ajax实现的登录

一、需要知道的新知识点

1、刷新验证码。给src属性加一个?号。加个?会重新去请求

        //#给验证码刷新
        $(".vialdCode_img").click(function () {
         方式一:dom方法#}
            $(this)[0].src+="?"#}
         方式二:jQuery的attr方法#}
            $(this).attr("src",$(this).attr("src")+'?')
        })
    }) 

2、当登录成功跳转,或者注册成功跳转

 $(".register").click(function () {
            location.href = '/register/'
  });

3、超时后消失

setTimeout(foo, 3000)
function foo() {
                $(".error").html("")
            }

4、auth模块的使用

模块的导入:

from django.contrib import auth

几个使用方法:

1 、authenticate()   :验证用户输入的用户名和密码是否相同

提供了用户认证,即验证用户名以及密码是否正确,一般需要username  password两个关键字参数

user = authenticate(username='someone',password='somepassword')

2 、login(HttpRequest, user):登录  

该函数接受一个HttpRequest对象,以及一个认证了的User对象

此函数使用django的session框架给某个已认证的用户附加上session id等信息。

from django.contrib.auth import authenticate, login
   
def my_view(request):
  username = request.POST['username']
  password = request.POST['password']
  user = authenticate(username=username, password=password)
  if user:
    login(request, user)
    # Redirect to a success page.
    ...
  else:
    # Return an 'invalid login' error message.
    ...

3 、logout(request)  注销用户 

该函数接受一个HttpRequest对象,无返回值。当调用该函数时,当前请求的session信息会全部清除。该用户即使没有登录,使用该函数也不会报错。

from django.contrib.auth import logout
   
def logout_view(request):
  logout(request)
  # Redirect to a success page.

4 、user对象的 is_authenticated()

要求:

  1、用户登录后才能访问某些页面

  2、如果用户没有登录就访问该页面的话直接跳转登录页面

  3、用户在跳转的登录界面中完成登录后,自动访问跳转到之前访问的地址

def my_view(request):
  if not request.user.is_authenticated():
    return redirect('%s?next=%s' % (settings.LOGIN_URL, request.path))

在后台用request.user.is_authenticated()判断用户是否已经登录,如果true则可以向前台展示request.user.name

USer对象的几个方法

2.2 、创建用户:create_user 

from django.contrib.auth.models import User
user = User.objects.create_user(username='',password='',email='')

2.3 、check_password(passwd):密码检查

用户需要修改密码的时候 首先要让他输入原来的密码 ,如果给定的字符串通过了密码检查,返回 True

2.4 、修改密码: set_password() 

user = User.objects.get(u
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值