浅谈对IdentityServer4 access_token 的理解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xiaomifengmaidi1/article/details/83621883

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

猜你喜欢

转载自blog.csdn.net/xiaomifengmaidi1/article/details/83621883
今日推荐