JWT(Json web token)

参考

传统方案:
1) 存储到session(结合redis缓存)
浏览器存储sessesid,服务器集群,
信息存在在后台统一的session服务器
没有分布式架构,无法支持横向扩展
2) 存储到cookie
将验证信息保存在数据库中,后端每次都需要根据token查出用户id,
这就增加了数据库的查询和存储开销。若把验证信息保存在session中,
又加大了服务器端的存储压力。
本质:存储信息在服务端
3)jwt
如果我们生成token遵循一定的规律,比如我们使用对称加密算法来加密
用户id形成token,那么服务端以后其实只要解密该token就可以知道用户的id
jwt中使用对应算法对用户信息加密。
jwt的目的

  • 解决跨域
  • 多个服务器

JWT实现:

在服务器身份验证之后,将生成一个JSON对象并将其发送回用户
···
{
“UserName”: “Chongchong”,
“Role”: “Admin”,
“Expire”: “2018-08-08 20:15:56”
}
···
客户在请求中发回JSON对象。服务器仅依赖于这个JSON对象来标识用户。
为了防止用户篡改数据,服务器将在生成对象时添加签名

结构由三部分组成

1) JWT头:
{
“alg”: “HS256”,
“typ”: “JWT”
}
它会使用 Base64 编码组成 JWT 结构的第一部分,
2) JWT的主体:
一个JSON对象
{
“iss”: “link JWT”,
“iat”: 1441593502,
“exp”: 1441594722,
“aud”: “www.example.com”,
“sub”: “user”
}
iss(签发者)
exp(过期时间)
sub(面向的用户)
aud(接收方)
iat(签发时间)
它会使用 Base64 编码组成 JWT 结构的第二部分
3) 签名哈希:
Signature 需要使用编码后的 header 和 payload 以及我们提供的一个密钥,
然后使 用 header 中指定的签名算法(HS256)进行签名。
签名的作用是保证 JWT 没有被篡改过
三个部分组合成一个字符串,每个部分用"."分隔,就构成整个JWT对象

  • 一般是将它放入HTTP请求的Header Authorization字段

缺点:
一旦JWT签发,在有效期内将会一直有效
JWT的有效期不宜设置太长。对于某些重要操作,
用户在使用时应该每次都进行进行身份验证或手机验证码。
尽量使用 https

OOS单点登录

  • 同域名: session+redis(共享)
    注意:cookie不能跨域
  • 不同域名:

CAS:在请求CAS Client 时用户必须带有CAS Server
生成的Service Ticket
流程:
1、用户访问CAS Client
2、重定向到CAS Server为验证成功(保存登录信息)用户生成Service Ticket
3、将Service Ticket传递CAS Client、
4、CAS Client向Service Ticket发起验证,成功返回user info

oauth

第三方授权机制

  • 参考1
  • 参考2

带你区分清楚Authentication,Authorization以及Cookie、Session、Token

JWT、OOS、Oauth三种登录验证机制相关推荐

  1. token登录验证机制

    jwt: json web token 数据 前端 秘钥 前端 请求数据的时候. 需要通过秘钥生成命令令牌. Token token是oAuth Token,提供的是认证和授权,认证针对用户,授权是针 ...

  2. 基于ftp服务的三种登录方式及其相关的访问控制和优化

    ftp(简单文件传输协议),是一种应用广泛的网络文件传输协议和服务,占用20和21号端口,主要用于资源的上传和下载. 在linux对于ftp同widows一样具有很多的种类,这里主要介绍vsfptd( ...

  3. 三种登录形式的实现—永久登录、每次进入页面登录、设置登录有效期

    三种登录形式的实现-永久登录.每次进入页面登录.设置登录有效期 前言 一.sessionStorage和localStorage区别和使用 1.localStorage(本地储存): 2.sessio ...

  4. css中的三种基本定位机制

    css中的三种基本定位机制 a.普通文档流 b.定位:相对定位 绝对定位 固定定位 c.浮动 1.普通流中,元素位置由文档顺序和元素性质决定,块级元素从上到下依次排列,框之间的垂直距离由框的垂直mar ...

  5. Uchome的登录验证机制

    2019独角兽企业重金招聘Python工程师标准>>> 登录: 成功后设置cookie //设置cookie ssetcookie('auth', authcode("$s ...

  6. linux系统查看FTP用户名密码,Linux的FTP的三种登录方式:

    Linux的FTP的三种登录方式: 我们登录FTP有三种方式,匿名登录.本地用户登录和虚拟用户登录. 匿名登录:在登录FTP时使用默认的用户名,一般是ftp或anonymous. 本地用户登录:使用系 ...

  7. java实现登录验证机制的技术_基于token的登陆验证机制

    session简介 做过Web开发的程序员应该对Session都比较熟悉,Session是一块保存在服务器端的内存空间,一般用于保存用户的会话信息. 用户通过用户名和密码登陆成功之后,服务器端程序会在 ...

  8. 微服务ServiceMesh及三种服务发现机制

    1. 前言 今年,ServiceMesh(服务网格)概念在社区里头非常火,有人提出2018年是ServiceMesh年,还有人提出ServiceMesh是下一代的微服务架构基础.作为架构师,如果你现在 ...

  9. 什么叫反光识别读数识别_南昌公积金提取有大变化!增加三种登录方式

    今日,记者从南昌公积金管理中心获悉,"南昌公积金"微信公众号再次进行优化.南昌公积金缴存职工可通过反光识别登录身份认证.读数识别登录身份认证和账户密码登录三种方式进行登录. 升级后 ...

最新文章

  1. 使用Python构建推荐系统的机器学习
  2. uni-app文档需要注意细节点
  3. Asp.net邮件系统的模拟与实现源码
  4. 每个Linux用户都应该了解的命令行省时技巧
  5. jQuery框架总体分析
  6. linux如何判断网线插入_快速鉴定网线质量的常用方法
  7. 百万人学AI 万人在线大会, 15+ 场直播抢先看!
  8. k8s中hostname, hosts文件, DNS和代理问题, service和pod的访问问题
  9. node 多进程 vs java_如何理解node的多进程
  10. LaTeX中常用的模板,命令和技巧
  11. 使用jQuery高效制作网页特效 第六章习题
  12. 自然语言处理-停用词
  13. 马尔科夫区制转移向量自回归模型,MSVAR模型,MS-VAR模型的使用和操作过程
  14. 利用openFrameWork、ofxFaceTrack制作的虚拟眼镜加载系统
  15. 遥感或DEM像素深度如何降为8bit
  16. Zabbix官方文档以及日常运维
  17. 本周白银市场再刮超级旋风
  18. mysql 幻读的隔离_MySQL的RR隔离级别与幻读问题
  19. java 9宫格抽奖_九宫格抽奖HTML+JS版
  20. Android Studio基础单选按钮RadioButton

热门文章

  1. Mac系统程序已卸载,图标还在“启动台launchpad”中,如何清理干净?
  2. Fragment already added 问题
  3. SpringBoot + uni-app开发企业级图书商城系统
  4. 微信小程序 获取formId
  5. 【避坑指“难”】react-dnd引入后,.mjs文件解析错误
  6. 【django】class='btn' btn按钮样式
  7. LVGL lv_btn 按钮(9)
  8. 算法学习笔记【1】——二分查找
  9. Web应用十大安全漏洞
  10. 红孩儿编辑器的开发 1 字体库的生成过程