Django框架 - 09 实现登陆注册注销

一. 登录/注册/登录状态权限验证

前言

通过cookie和token去实现登录功能,用户在登录账号以后,随机产生一个随机数并存在cookie中,并在服务端也存储同一个数在数据库中。当下一次url请求过来的时候,解析request中绑定的cookie信息,解锁出之前存的随机数,判断该随机数是否是存储在服务器端的数据,如果没有查询到则表示该cookie过期,或者该cookie是伪造的,或者服务器上存储该信息的数据缓存到期被清空了。则该提示用户重新登录,并且重新产生随机数,并存储在cookie中以及服务端,以保证下次请求和响应能够顺利。

练手题目

题目:
1) 编写一个方法,用于注册用户的账号和密码。

2) 编写一个方法,用于登录用户的账号和密码,并且登录的时候绑定一个加密的参数在cookie上,并且该加密参数也存储在服务端中。

3)在以后的任意一个请求,我们都获取request中的cookies,查看cookie中绑定的参数是否合法,以及查询是否在服务端存储了。

4)如果验证成功则返回请求url的结果信息到页面,如果验证失败则返回错误提醒信息页面

5) 注销登录

6)定义装饰器去验证用户登录以后才执行对应的视图函数,反之跳转到登录页面中

1. 注册方法

从页面中获取账号和密码,进行创建
这里写图片描述

2. 登录,并且绑定参数到cookie上

先检验用户名是否在数据库中,如果查询到则继续验证密码, 如果密码验证对,则绑定一个参数到cookie中。
解析密码,加密密码来源与一下的模块:

from django.contrib.auth.hashers import check_password, make_password

这里写图片描述

3. 在方法中验证cookie中传递的参数是否正确

cookie是在用户提交url请求的时候都会带上的一个参数,所以可以从中获取到我们设置的参数,并且在服务端进行验证,看服务端有这个标识符没有,
如果能查询到,则表示用户登录过了,并且还在登录时效内,则直接返回用户提交url对应的响应。如果在服务端没有查询到数据,则表示标识符过期,
或者无效了,需要登录了,则直接提示错误信息即可!
这里写图片描述

4. 注销登录

删除cookie中的认证令牌
这里写图片描述

5. 通过定义装饰器去验证用户是否是登录状态,如果不是,则跳转到登录

定义装饰器–闭包
这里写图片描述

二. Django自带方法实现登录/注册/登录状态权限

前言

在django中,django帮我们封装好了登录注册以及注销的函数,使用django定义好的注册

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值