但也可以使用cookie)
官方介绍:https://jwt.io/introduction/
https://auth0.com/learn/json-web-tokens/
什么是JSON WEB TOKEN?JSON Web Token(JWT)是一种开放标准(RFC 7519),它界说了一种紧凑且独立的方法,可以在各方之间作为JSON东西安适地传输信息。此信息可以通过数字签名进行验证和信任。JWT可以使用奥秘(使用HMAC算法)或使用RSA的公钥/私钥对进行签名。
让我们进一步解释这个界说的一些观点。
压缩:由于它的巨细,它可以通过URL,POST参数或HTTP头内部发送。别的,由于其尺寸,其传输速度很快。
自包罗:有效负载包罗有关用户的所有必须信息,以制止多次盘问数据库。
有关JSON Web令牌的完整详细信息,请检察JWT手册。
什么时候应该使用JSON WEB TOKEN?这些是JSON Web Tokens非常有用的场景:
身份验证:这是使用JWT的范例方案,一旦用户登录,每个后续请求将包孕JWT,允许用户访谒该令牌允许的路由,处事和资源。Single Sign On是一种此刻广泛使用JWT的成果,因为它的开销很小,并且能够在差别域的系统中轻松使用。
信息交换:JWT是在各方之间安适传输信息的好要领,因为它们可以签名,例如使用公钥/私钥对,您可以确定发件人是他们所说的人。别的,由于使用标头和有效负载计算签名,您还可以验证内容是否未变动。
哪个是JSON WEB TOKEN布局?JWT由dot(.)分隔断绝分手的三个部分构成,它们是:
头
有效载荷
签名
因此,JWT凡是如下所示。
xxxxx.yyyyy.zzzzz
让我们分化差此外部分。
头标头凡是由两部分构成:令牌的类型,即JWT,以及哈希算法,如HMAC SHA256或RSA。
例如:
{ "alg": "HS256", "typ": "JWT" }然后,这个JSON被编码为Base64Url,形成JWT的第一部分。
有效载荷令牌的第二部分是有效负载,此中包罗声明。声明是关于实体(凡是是用户)和其他元数据的声明。索赔有三种类型:保存,果然和私人索赔。
保存的声明:这些是一组预界说的声明,这些声明不是强制性的,但建议用于供给一组有用的,可互操纵的声明。此中一些是:iss(刊行人),exp(到期时间),sub(主题), aud(不雅观众)等。
请注意,声明名称只有三个字符,因为JWT意味着紧凑。
果然声明:这些可以由使用JWT的人随意界说。但是为制止斗嘴,,应在IANA JSON Web令牌注册表中界说它们,或者将其界说为包罗防斗嘴定名空间的URI。
私人声明:这些声明是为了在同意使用它们的各方之间共享信息而创建的。
有效载荷的一个例子可能是:
{ "sub": "1234567890", "name": "John Doe", "admin": true }然后有效载荷被Base64Url编码以形成JWT的第二部分。
签名要创建签名部分,您必需给与编码标头,编码的有效负载,奥秘,标头中指定的算法,并对其进行签名。
例如,如果要使用HMAC SHA256算法,将以下列方法创建签名。
HMACSHA256( base64UrlEncode(header) + "." + base64UrlEncode(payload), secret)签名用于验证JWT的发件人是否是其所说的人,并确保邮件未被变动。
把所有人放在一起输出是三个由点分隔断绝分手的Base64字符串,可以在HTML和HTTP环境中轻松通报,与基于XML的标准(如SAML)对比越发紧凑。
下面显示了一个JWT,它具有先前的头和??有效负载编码,并使用机密签名。
您可以浏览jwt.io,在那里您可以使用JWT并将这些观点付诸实践。jwt.io允许您解码,验证和生成JWT。
JSON WEB TOKEN如何事情?温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/31674.html