jwttoken解码_使用 JSON WEB TOKEN (jwt) 验证

一、什么JSON Web Tokens?

JSON Web Tokens是一种开放的行业标准  RFC 7519方法,用于在双方之间安全地表示索赔。

JWT.IO允许您解码,验证和生成JWT。其中。JWT 支持任何语言的解码。

二、JWT 的结构

JWT由三部分组成:

1.Header     :头信息

标头通常由两部分组成:令牌的类型,即JWT,以及正在使用的签名算法

如:{  "alg": "HS256",  "typ": "JWT"}

然后,这个JSON被编码为Base64Url,形成JWT的第一部分。

2.Payload     :有效载荷

令牌的第二部分是有效负载,其中包含声明。声明是关于实体(通常是用户)和其他数据的声明。

示例有效负载可以是:{  "sub": "1234567890",  "name": "John Doe",  "admin": true}

然后,有效负载经过Base64Url编码,形成JSON Web令牌的第二部分。由于JWT 支持任何语言的解码,所以不要在Payload 中放置重要信息

3.Signature    :签名

如:HMACSHA256(

base64UrlEncode(header) + "." +

base64UrlEncode(payload),

secret)

签名由三部分组成,base64编码后的表头、base64编码后的有效载荷和秘钥,三者中间由 '.' 字符连接。这里举例的是采用HMACSHA256算法加密的。

其中secret秘钥是注册后创建app之后生成的(此秘钥非常重要,不要告诉别人哟)。

三、代码实现(以net core 为例):

1.首先引用 Microsoft.IdentityModel.Tokens.dll。net core 2.1版本中内置了这个库,其他版本要引用。

2.为了方便,我把整个jwt结构写了配置,并在项目中引用。

创建了对应的配置节点实体:using System;

using System.Collections.Generic;

using System.Linq;

using System.Threading.Tasks;

namespace fwt.Models

{

/// 

/// jwt

/// 

public class JWTTokenModel

{

public JWTHeader header { get; set; }

public JWTPayLoad payLoad { get; set; }

public string secret { get; set; }

}

/// 

/// header

/// 

public class JWTHeader

{

public string alg { get; set; }

public string typ { get; set; }</

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值