平台登录过程

牢记:

前端访问某一url,只是通过该url访问到对应的视图函数,并根据传来的数据(参数、body,request请求头中的各种数据等)获取后端的资源或数据。

准备条件:

1.了解http的状态码:https://developer.mozilla.org...
2.了解django的调用过程:
平台登录过程_第1张图片
3.django中间件相关:

'django.contrib.sessions.middleware.SessionMiddleware', -- session相关
'django.contrib.auth.middleware.AuthenticationMiddleware'--认证相关

登录过程:

  1. 请求http://xx/login/?next=/index/,GET请求--获取登录界面,POST请求 -- 传递用户信息(邮箱和密码)
  2. 认证user = auth.authenticate(username=email,password=password)
  3. 根据settings.py中的AUTHENTICATION_BACKENDS来确定认证模块列表,依次认证,认证通过则停止;认证后端默认是['django.contrib.auth.backends.ModelBackend']。认证后端类必须实现两个方法:get_user(user_id)和authenticate(request, **credentials)
  4. 请求相关接口,获取用户信息,将request body中的信息和用户信息对比;
  5. 认证通过后,返回user信息;
  6. 将用户信息保存至session中,并设置COOKIE。auth.login(request,user) -- Persist a user id and a backend in the request. This way a user doesn't have to reauthenticate on every request.
    平台登录过程_第2张图片
  7. 如果COOKIE中的session过期,则重定向到登录界面;

你可能感兴趣的:(django)