易语言资源网 - 做最全的易语言资源下载社区
精易论坛授权登录

基于E2EE的无状态认证JsonWebToken算法、常用Web算法模块   [复制链接]

    2019-11-21 09:25:14
    2019开源大赛(第四届)
    易语言资源网
    3342 次浏览
    来源链接

JWT应用场景?主要用于身份认证

1、相比xml而言json格式简单,jwt中已经有了你需要的全部信息,拿出来用就行。

2、同session相比,性能更好一些,省去了处理分布session的问题;对于大行其道的restful来讲,支持得很好;浏览器+app+pc,这种多终端开发,是很好的选择。

如果可以,新系统不再使用session保存用户信息。对于我们自己的platina开发平台,可以平滑过渡到jwet,让开发人员感觉不到。

JWT有什么好处?1、支持跨域访问: Cookie是不允许垮域访问的,这一点对Token机制是不存在的,前提是传输的用户认证信息通过HTTP头传输.

2、无状态(也称:服务端可扩展行):Token机制在服务端不需要存储session信息,因为Token 自身包含了所有登录用户的信息

4、更适用CDN: 可以通过内容分发网络请求你服务端的所有资料(如:javascript,HTML,图片等),而你的服务端只要提供API即可.

5、去耦: 不需要绑定到一个特定的身份验证方案。Token可以在任何地方生成,只要在你的API被调用的时候,你可以进行Token生成调用即可.

6、更适用于移动应用: 当你的客户Duan是一个原生平台(iOS, Android,Windows 8等)时,Cookie是不被支持的(你需要通过Cookie容器进行处理),这时采用Token认证机制就会简单得多。

7、CSRF:因为不再依赖于Cookie,所以你就不需要考虑对CSRF(跨站请求伪造)的防范。

8、性能: 一次网络往返时间(通过数据库cha询session信息)总比做一次HMACSHA256计算 的Token验证和解析要费时得多.

9、不需要为登录页面做特殊处理: 如果你使用Protractor 做功能测试的时候,不再需要为登录页面做特殊处理.

10、基于标准化:你的API可以采用标准化的 JSON Web Token (JWT). 这个标准已经存在多个后端库(.NET, Ruby, Java,Python, PHP)和多家公司的支持(如:Firebase,Google, Microsoft).

11、避免因Cookie本地泄露导致的客户风险,由于用HTTP协yi头来传输JWT令牌,不会在客户电脑存储cookie信息。

12、有效降低sql数据库的压力,关键非安全的用户信息可以直接存储与JWT中,下次请求时只需要读取JWT中的数据,不必再去sqlcha询。

注意事项:本模块中生成的JWT令牌中的body区域的内容,前端只需要base64解码就可以获得body区的json,但是由于JWT的特殊构造,sign区的加密采用sha256加密,基本无需担心令牌伪造。

模块中包含了一些其他常见算法,如sign签名校验

image.png



点我下载 (已有 173 次下载)

引用模块


源码文件名 模块文件名
JWT使用实例.e
算法.ec


引用支持库


源码文件名 支持库文件名 支持库标识
JWT使用实例.e 系统核心支持库 5.7 d09f2340818511d396f6aaf844c7e325
E2EE互联网服务器套件2.3.2 2.0 AA50CDD5A14C4C5DB81BAE05DE4DDE6D
JWT算法.e 系统核心支持库 5.7 d09f2340818511d396f6aaf844c7e325
数据操作支持库一 2.0 4BB4003860154917BC7D8230BF4FA58A
E2EE互联网服务器套件2.3.2 2.0 AA50CDD5A14C4C5DB81BAE05DE4DDE6D


[错误报告]   上一篇:炫彩-冷库温度上位机软件...     下一篇:可停靠分隔条模块(配色样式自由)...