Gin框架的Json web token(JWT)
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.Json Web Token(简称JWT)概述
Json web token (JWT), 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC 7519).该token被设计为紧凑且安全的,特别适用于分布式站点的单点登录(SSO)场景。 JWT的声明一般被用来在身份提供者和服务提供者间传递被认证的用户身份信息,以便于从资源服务器获取资源,也可以增加一些额外的其它业务逻辑所必须的声明信息,该token也可直接被用于认证,也可被加密.
二.JWT组成
header:
承载两部分信息;声明类型,这里是jwt;声明加密的算法 通常直接使用 HMAC SHA256.
playload:
载荷就是存放有效信息的地方;iss: 签发者 sub: 面向的用户 aud: 接收方 exp: 过期时间 nbf: 生效时间 iat: 签发时间 jti: 唯一身份标识.
signature:
是一个签证信息,这个签证信息由三部分组成;header (base64后的); payload (base64后的); secret.
三.JWT实现的单点登录流程
JWT实现的单点登录流程如下图所示。