前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Identity Server4学习系列二

Identity Server4学习系列二

作者头像
郑小超.
发布2018-12-26 17:32:48
5890
发布2018-12-26 17:32:48
举报
文章被收录于专栏:GreenLeavesGreenLeaves

1、简介

通过前文知道了Identity Server4的基本用途,现在必须了解一些实现它的基本细节.

2、关于服务端生成Token令牌

头部(Header):

代码语言:javascript
复制
{ 
“typ”: “JWT”, //token的类型
“alg”: “HS256” //Token使用的加密算法
} 

将头部使用Base64编码可得到如下个格式的字符串:

代码语言:javascript
复制
eyJhss6iOaaJIUasddasd

有效载荷(用户信息等关键信息):

代码语言:javascript
复制
{ 
“iss”: “Online JWT Builder”, //token的签发者
“iat”: 666666, //签发时间
“exp”: 66666, //过期时间
……. 
“userid”:10001 //用户Id
//下面可以继续编写用户信息,但不能存放敏感信息
}

有效载荷也使用Base64编码得到如下格式的字符串:

代码语言:javascript
复制
eyJhss6iOaaJIUasddasd

接着将Header和Playload拼接生成一个字符串“eyJhss6iOaaJIUasddasdeyJhss6iOaaJIUasddasd”,使用HS256算法对该字符串进行加密,得到的字符串在通过我们提供的密钥(secret,服务器自己提供的一个字符串)对字符串进行证书签名字符串,最终得到一个包含头部信息(Base64字符串)和有效载荷(用户信息等Base64字符串)和一个进行层层加密的签名字符串组成的一个JWTtoken

3、关于服务端如何解密令牌

当用户登陆成功后,继续访问页面,那么会带上这个token,服务端拿到token之后,对头部信息和有效载荷在进行一次HS256算法和使用当前用户对应的密钥进行一次签名,判断这个签名是否和token中的签名是否一致,就可以判断这个token是否有效.因为密钥存在我们服务器上,别人不可能能伪造.

4、Token的优点

不用保存在服务器,Session需要保存在服务器,而且Session不能跨服务器,只能保存在一台服务器上,所以当用户登陆了这个站点,那么做了负载均衡后,下次访问必须还是访问这个站点,所以可扩展性强比较灵活.

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-12-13 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档