浅谈对IdentityServer4 access_token 的理解

IDS4服务器通过JWT签名(我觉得是私钥签名)生成access_token ,JWT包含了

1.header 用于描述元信息,例如产生 signature 的算法:

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

其中alg关键字就指定了使用哪一种哈希算法来创建 signature 
2.payload 
payload 用于携带你希望向服务端传递的信息。你既可以往里添加官方字段(这里的“字段” (field) 也可以被称作“声明” claims),例如iss(Issuer), sub(Subject), exp(Expiration time),也可以塞入自定义的字段,比如 userId:
{ "userId": "b08f86af-35da-48f2-8fab-cef3904660bd" }

3.signature 
signature 译为「签名」 
创建签名要分以下几个步骤:

你需要从接口服务端拿到密钥,假设为secret
将header进行 base64 编码,假设结果为headerStr
将payload进行 base64 编码,假设结果为payloadStr
将headerStr和payloadStr用.字符串拼装起来成为字符data
以data和secret作为参数,使用哈希算法计算出签名
data = base64urlEncode( header ) + “.” + base64urlEncode( payload ) signature = Hash( data, secret );

受保护的API 首次被访问,会拿着这个access_token 去IDS4服务器获取公钥,把API资源和公钥信息存在缓存中,验签这个token是否合法,以及用户信息,

https://www.cnblogs.com/Irving/p/9357539.html

https://www.cnblogs.com/stulzq/p/9226059.html

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值