注册完了就是为了登录,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请求看能不能拿到