牢记:
前端拜访某一url,只是通过该url拜访到对应的视图函数,并依据传来的数据(参数、body,request申请头中的各种数据等)获取后端的资源或数据。
筹备条件:
1.理解http的状态码:https://developer.mozilla.org...
2.理解django的调用过程:
3.django中间件相干:
'django.contrib.sessions.middleware.SessionMiddleware', -- session相干'django.contrib.auth.middleware.AuthenticationMiddleware'--认证相干
登录过程:
- 申请http://xx/login/?next=/index/,GET申请--获取登录界面,POST申请 -- 传递用户信息(邮箱和明码)
- 认证user = auth.authenticate(username=email,password=password)
- 依据settings.py中的AUTHENTICATION_BACKENDS来确定认证模块列表,顺次认证,认证通过则进行;认证后端默认是['django.contrib.auth.backends.ModelBackend']。认证后端类必须实现两个办法:get_user(user_id)和authenticate(request, **credentials)
- 申请相干接口,获取用户信息,将request body中的信息和用户信息比照;
- 认证通过后,返回user信息;
- 将用户信息保留至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.
- 如果COOKIE中的session过期,则重定向到登录界面;