热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

数据项_jwt介绍

篇首语:本文由编程笔记#小编为大家整理,主要介绍了jwt介绍相关的知识,希望对你有一定的参考价值。适用场景前后端分离时,登陆后&

篇首语:本文由编程笔记#小编为大家整理,主要介绍了jwt介绍相关的知识,希望对你有一定的参考价值。



适用场景

前后端分离时,登陆后,用户标识保存到客户端,后续请求时,带着用户标识,以此来区分是否登录。用户标识可以是用户id、也可以包含其他字段,通常还得加密或者加签名,提交到服务器端时还要验证签名,这块信息没有约定格式,jwt就是一个格式,它规定了签名、加密、内容等等。


简介

jwt=json web token,由三部分组成header、payload、sign,这三部分用点号分隔header.payload.sign。


header

header表示加密算法;


"alg": "HS256",
"typ": "JWT"

之后,将header做base64处理;


payload

payload就是内容,payload也叫claim,有三种类型,一种是registered claim、public claim、private claim,推荐使用registered


  • registered,就是比较通用的数据项,含有iss (issuer), exp (expiration time), sub (subject), aud (audience), and others,为什么calim名称都是3个字母?这是为了减小大小;此种,推荐使用但不是强制的。
  • public,就是好多名字已经注册到jwt registry,比如这个链接,里边包含所有已经注册的名字,还有
  • private就是自己定义的。

然后将payload做base64处理;


Signature

最后一部分是Signature,签名可以防止数据被篡改,也可以用来证明发送者身份,就是将header、payload、secret做个签名。比如使用了HMACSHA256算法,则签名等于

HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret)

最终效果可以通过在线尝试


推荐阅读
author-avatar
实事求是2502932297
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有