作者:禅与计算机程序设计艺术
1.背景介绍
JWT(Json Web Token)简介
JSON Web Tokens (JWTs),是一种开放标准[RFC7519](Request for Comments)第7部分定义的一种基于JSON的数据交换格式。它主要用于在两个或以上不同的应用之间传递声明信息。JWT提供了验证机制,使得服务器能够确认传输中的数据没有被篡改、伪造或攻击者未经授权的情况下进行操作。其最大的优点就是可以对发送的信息进行签名防止信息被篡改,也可以使用加密方法保证信息的完整性。当然,最重要的是JWT还可以通过一些定制要求进行权限管理,比如颁发不同的角色给不同的用户。由于具有无状态和可靠性,因此很适合作为分布式系统的身份认证方式。
JWT的作用与特点
- 无状态,即无需保持会话信息,因为每一次请求都会带上token。
- 容易理解,因为JWT由三部分组成header、payload、signature。所以初学者很容易理解。
- 安全,它可以避免使用Cookie存储Session ID,减少跨站请求伪造(CSRF)攻击的风险。同时,由于无法伪造也无法修改Payload,有效保障了信息的安全。
- 流行的语言库支持。如Java有很多JWT实现库,包括spring security、Jwt-go等;JavaScript有jwt-decode等库。