JWT 实现用户登录认证

JWT是JSONWebToken的缩写 , 是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准((RFC7519) 。 定义了一种简洁的 , 自包含的方法用于通信双方之间以JSON对象的形式安全的传递信息 。 因为数字签名的存在 , 这些信息是可信的 , JWT可以使用HMAC算法或者是RSA的公私秘钥对进行签名 。
JWT 实现用户登录认证
文章图片
用户使用账号和密码发起POST请求;服务器使用私钥创建一个JWT;服务器返回这个JWT给浏览器;浏览器将该JWT串在请求头中像服务器发送请求;服务器验证该JWT;返回响应的资源给浏览器 。身份认证在这种场景下 , 一旦用户完成了登录 , 在接下来的每个请求中包含JWT , 可以用来验证用户身份以及对路由 , 服务和资源的访问权限进行验证 。 由于它的开销非常小 , 可以轻松的在不同域名的系统中传递 , 所有目前在单点登录(SSO)中比较广泛的使用了该技术 。 信息交换在通信的双方之间使用JWT对数据进行编码是一种非常安全的方式 , 由于它的信息是经过签名的 , 可以确保发送者发送的信息是没有经过伪造的 。
JWT是由三段信息构成的 , 将这三段信息文本用.连接一起就构成了JWT字符串 。
【JWT 实现用户登录认证】JWT的三个部分依次为头部:Header , 负载:Payload和签名:Signature 。
JWT 实现用户登录认证
文章图片
Header部分是一个JSON对象 , 描述JWT的元数据 , 通常是下面的样子 。
{"alg":"HS256","typ":"JWT


    推荐阅读