前言
我们之前分享分享使用密码和Bearer
正文
既然我们已经有了所有的安全流程,就让我们来使用 JWT 令牌和安全哈希密码让应用程序真正地安全。
关于 JWT
它是一个将 JSON 对象编码为密集且没有空格的长字符串的标准。字符串看起来像这样:
但它经过了签名。因此,当你收到一个由你发出的令牌时,可以校验令牌是否真的由你发出。
通过这种方式,你可以创建一个有效期为 1 周的令牌。然后当用户第二天使用令牌重新访问时,你知道该用户仍然处于登入状态。
一周后令牌将会过期,用户将不会通过认证,必须再次登录才能获得一个新令牌。而且如果用户(或第三方)试图修改令牌以篡改过期时间,你将因为签名不匹配而能够发觉。
我们看下如何实现?
一、安装python-json产生和校验JWT。
二、使用PassLib处理哈希密码
还需要安装bcrypt
三、我们看下如何使用,以及思路
我们最后看下实现代码
我们去测试下,效果,我们去在docs上使用Authorize,默认的密码是:secretsecret
我们去填写下
我们去认证下
我们看下接口的请求
我们看下如果不认证呢
我们可以看下请求带的数据
这样就完成了:使用(哈希)密码和 JWT Bearer 令牌的 OAuth2。注意:接口返回的用户不应该返回密码,这个需要在实际中需要屏蔽
后记
发现问题,解决问题。遇到问题,慢慢解决问题即可。
欢迎关注雷子说测试开发,后续将会持续为大家分享更多的技术知识