2020/03/08 05-登录功能实现和认证装饰器1

注册完了就是为了登录,session,cookie,jwt都不能最终及解决安全问题,csrf-token是用来解决一些伪装的问题,jwt和cookie是解决状态的问题,不是安全的问题,jwt是改了可以知道,cookie改了不知道,jwt可以在服务器端不存session。但不能解决身份伪装的问题

用户名和密码提交,我们进行验证,验证通过即可登录,密码的安全,最好不要在客户端加密,相当于暴露自己的秘钥加密方式,是不安全的,有些网站会有一个upgrade,会将http提升成https,https就需要证书互相通信,用证书来加密解决敏感数据的加密问题

在这里插入图片描述
客户端通过提交密码和用户名用json的方式,这是restful风格的,用户名找打了再去匹配密码,不要给别人提供很详细的错误信息在这里插入图片描述
整个提交过程继续使用json,使用restful风格,再设计一个url,user下的login

在这里插入图片描述
先写一个login函数
在这里插入图片描述
这样映射写完了,剩下就需要解决登录验证过程

在这里插入图片描述
像login这样的接口,别人往往会来攻击你,你就要记录一下在干什么,现在拿到email。password,该做登录验证

在这里插入图片描述
现在做一下验证,这样相当于就要一条数据,能用索引的往前写作为判断条件
在这里插入图片描述
也可以用first,判断你这个数据有没有,通过email去找,找到了就对了,没找到也不是异常就抛出登录失败
在这里插入图片描述
用户名找到好后,就需要验证密码,这样写没有效率问题,结构比较清晰
在这里插入图片描述
验证成功想办法把信息显示出来
在这里插入图片描述
登录成功发一个token,否则就登录失败
在这里插入图片描述
准备login登录
在这里插入图片描述

在这里插入图片描述
看一下原因,这一块出了问题
在这里插入图片描述
unique对象应该哎编码check之前

在这里插入图片描述

在这里插入图片描述
拿出来的时候好像字符串,试试encode一下
在这里插入图片描述
现在就拿到了

在这里插入图片描述
这个类发现是字符串,最后还帮我们转一下bytes
在这里插入图片描述
check成功了现在就返回一个token,登录成功发一个令牌,还不允许你改

在这里插入图片描述
但是不能防止身份被盗用 的问题

在这里插入图片描述
代码很简单,把数据拿回来,做check,
在这里插入图片描述
check成功就返回一个token,下一回带回来这个token,有几种方法,body,cookie,造一个header字段

在这里插入图片描述

在这里插入图片描述
可以在这里多写一些信息,将token作为其中的一项,用户登录成功后,还需要用一些用户的信息,用户叫什么(比如页面上的用户xxx你好)

在这里插入图片描述
有时候要显示用户的姓名可以把用户姓名返回去,也可以把token放进去,现在这样就是返回两项,一项是user,一项是token
在这里插入图片描述
如何让用户知道登录成功或者让她下次带过来信息,有很多办法:
1.浏览器端自己写json,我们提取json,由前端我们自己写的js提交的时候把token值带上,cookie也是这么玩的,由token来带的

在这里插入图片描述
token这样写就不合适了在这里插入图片描述
直接返回后面这部分即可

在这里插入图片描述
注册完了要强行登陆一次

在这里插入图片描述
在这里插入图片描述
刚才返回过来的jwt是这个在这里插入图片描述
等会看生成的和这个做下对比
在这里插入图片描述
再次发送

在这里插入图片描述
对比下差距
在这里插入图片描述
现在有一点问题
在这里插入图片描述
忘记了return
在这里插入图片描述
现在全新的写一个,故意写错密码
在这里插入图片描述
登陆失败
在这里插入图片描述
再次登录set-cookie来了

代码要求带上set-cookie

在这里插入图片描述
也就是服务器端强行让你更新cookie
在这里插入图片描述
这个值要知道怎么算的,对照这个值可以知道为什么有的一样有的不一样

在这里插入图片描述
在你response之前要set-cookie告诉
在这里插入图片描述
在真正response的时候,都 会把头准备好,cookie是放在response的header中的

在这里插入图片描述

在这里插入图片描述
现在把cookie颁发给他了,已经把令牌给对方了,给了就下回需要带上令牌,检验合格,就认为登录过,就放行,也就是给的token值要发回来。就需要验证,有几种办法

可以用header中的authorization来进行验证,必须在header里增加authorization,然后把token信息加到里面去,方法是post和get,
在这里插入图片描述
还有就是自定义header头,习惯是x开头

在这里插入图片描述
在这里插入图片描述
现在拿到token
在这里插入图片描述
准备下次让你把token信息带回来,这个值带回来,通过header来,我们想办法把这个值从header里拿出来,request拿数据,只能用meta,试试在show方法里能不能拿到值
在这里插入图片描述
在这里插入图片描述
先随便定义一个jwt,然后发送get请求看能不能拿到

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值