什么是json web token (jwt)
这个一个标准,用来保证数据的安全性的,咱们常用的对于http api加密的方式有这么几种。
第一个是使用在HTTP规范中的Basic Auth,这个配置也是相当的简单,在nginx端针对路由location配置下就可以用了 。原理上,客户端必须在每个子响应是附加它们的凭证(credenbtial),包括他的账号和密码 。如果这些凭证通过了,那么用户的信息就会被传递到服务端应用。
requests.get(‘https://api.github.com/user’, auth=(‘user’, ‘pass’))
第二个方便是客户端从服务端签收一个加密的key,然后自己通过一定的算法组合加密数据,服务端会根据你的来源解析key。
第三种是OAuth(或者OAuth2)。为第三方的认证所设计,但是更难配置。至少在服务器端更难。
第四种,TOKEN的机制。 在各种客户端上每次都让用户提交用户名和密码,这有些不合理的。 通常的情况是客户端通过一些可靠信息和服务器交换取token,这个token作为客服端再次请求的权限钥匙,当然token也是存在有效时间控制的。 Token通常比密码更加长而且复杂。那么一旦获得了token,在每次调用API的时候都要附加上它。这仍然比直接发送账户和密码更加安全,哪怕是HTTPS。
把token想象成一个安全的护照。你在一个安全的前台验证你的身份(通过你的用户名和密码)