当前位置: 首页 > news >正文

在建设银行网站申请完信用卡吗泰州百度公司代理商

在建设银行网站申请完信用卡吗,泰州百度公司代理商,vps做网站需要做哪些准备,网站建设报告心得体会常见场景 账号/密码登录、手机号验证码登录、微信扫码登录 解决方案 基于Session认证方案 什么是session认证方案 服务端生成httpsession认证(内存-sessionId)sessionId写到浏览器cookie浏览器请求的header中自动带sessionId到服务端服务端校验sessionId是否合法 优点 .…

常见场景

账号/密码登录、手机号验证码登录、微信扫码登录

解决方案

基于Session认证方案

什么是session认证方案

  1. 服务端生成httpsession认证(内存-sessionId)
  2. sessionId写到浏览器cookie
  3. 浏览器请求的header中自动带sessionId到服务端
  4. 服务端校验sessionId是否合法

优点

  • . 方案成熟、实现简单

缺点

  • 服务端压力大,用户的信息保存在服务端,用户量越大,内存开销越大
  • 扩展性差,用户信息存在某一个服务器上,应用节点就会有状态,分布式环境下无法做到水平无限拓展(如何解决这个问题?可以将session共享,将session存在redis/mysql中,或者session复制,粘性session)
  • 普通的session认证不支持跨域
  • 容易被类似于csrf攻击,因为基于cookie类进行用户识别,cookie很容易被截获

基于JWT认证方案

什么是JWT

JWT(JSON WEB TOKEN) 是目前最流行的跨域认证解决方案,是一种基于Token认证授权机制,JWT自身包含了身份验证所需要的所有信息,因此我们服务端不需要存储Session信息,这显然增加了系统的可用性和伸缩性,大大减轻了服务端压力

JWT格式及组成

JWT也是令牌的token,是一个String字符串,由三部分构成,其中用点隔开,连接在一起就是一个JWT Token

JWT的组成

  • 标头(Header)
  • 有效载荷(Payload)
  • 签名(Signature)

Header:描述JWT的元数据,定义生成签名的算法以及Token类型
Payload:有效负载,用来存放实际需要传递的数据
Signature:前面两部分都使用Base64进行编码,前端可以解开知道里面的数据,Signature需要使用编码后的header和payload加上我们提供的一个密钥使用header中指定的签名算法进行签名,签名的作用是保证JWT没有被篡改过

优点

  • 跨平台实现,token是加密的形式保存在客户端,与语言无关,原则上任何web形式都支持
  • 不需要存储session,服务端节点可水平无限拓展
  • 不依赖cookie,使得其可以防止CSRF攻击
  • 性能好,只需要在header中携带token就可以实现验证

缺点

  • JWT生成的token在有效期内一直可用,因为存在客户端,无法在服务端删除
  • 用户登出,只能在客户端中删除token,无法在服务端控制
  • jwt本身无法实现用户禁止登录或拉黑用户需要业务自己实现

拓展

Jwt Token如何续期

方法一

管理后端

服务端(认证鉴权服务)

登录接口:返回accessToken和refreshToken(accessToken与refreshToken时间要错开,一般来说管理后台accessToken一般设置为30分钟,refreshToken设置为1h,小程序或APP:accessToken设置为7天,refreshToken设置为30天)

token续期接口:通过前台传过来的refreshToken来获取新的token(两个)(如果refreshToken过期,直接提示用户重新登录)

前端

  1. 前端将accessToken与refreshToken存在浏览器缓存
  2. 请求业务接口header中的Authorization参数携带token
  3. 如果接口返回token过期,前端通过refreshToken请求token续期接口,返回新的accessToken
  4. 前端将token更新缓存,下次使用新的token请求业务

方法二

token过期时间由redis来控制

  1. 在登陆时,把用户信息(或者token)放进redis,并设置过期时间

  2. 如果30分钟内用户有操作,前端带着token来访问,过滤器解析token得到用户信息,去redis中验证用户信息,验证成功则在redis中增加过期时间,验证失败,返回token错误。实现了token时间的自动更新。

  3. 如果30分钟内用户无操作,redis中的用户信息已过期,此时再进行操作,token解析出的用户信息在redis中验证失败,则重新登录。实现了一定时间内无操作掉线!

JWT如何中止

JWT正常情况下只有在过期过后才能失效,所以我们需要第三方的帮助

方案一

每个JWT都有一个唯一的jti字段,我们可以在退出登录/修改密码/重置密码等场景下,将jti字段给保存数据库(MySQL/Redis中),并设置过期的到期时间为Token的到期时间,如果是放在MySQL中则需要设置一个新的字段,如果是Redis中则可以直接设置过期时间,每次判断token的时候都需要查询一下

方案二

因为可以在每个token中加入盐值,认证的时候又会去验证这个盐的值,所以我们可以在每次退出登录/修改密码/重置密码时候,修改这个盐值,所以之前的token就不会验证成功也就失效了

http://www.ds6.com.cn/news/44946.html

相关文章:

  • 东莞seo建站优化方法百度排行榜风云
  • 网站建设具体日程安排收录批量查询工具
  • 百度搜不到自己的wordpress郑州seo优化外包热狗网
  • 网站备案时间要多久太原网络推广公司
  • 云主机如何上传网站搜索引擎营销sem
  • 郑州高端网站制作团队最近三天发生的重要新闻
  • php网站开发实用技术答案如何做网站推广的策略
  • 个人备案网站会影响吗企业邮箱格式
  • 在虚拟机中如何做二级域名网站杭州seo教程
  • 创造与魔法官方网站做自己关键词优化怎么操作
  • 手机视频网站建站百度seo排名优化公司哪家好
  • 建设银行ma love网站电脑培训网上培训班
  • 七冶建设集团网站 江苏seo专业推广
  • 网站你应该知道我说的是什么吧2021年十大热点事件
  • wordpress 云存储网络优化是做啥的
  • 巴西网站域名论述搜索引擎优化的具体措施
  • 后海做网站公司应用商店关键词优化
  • 对手网站分析网站建设优化推广
  • wordpress 主题和插件下载seo关键词排名优化工具
  • 网站上的动态背景怎么做的杭州网站排名seo
  • 网站开发的必要性南宁seo优化
  • 山东平台网站建设找哪家新东方培训机构官网
  • 网站测试教程网络运营推广怎么做
  • 网站建设大作业app联盟推广平台
  • 织梦如何仿手机网站源码seo关键词外包
  • 西峡做网站免费推广的app有哪些
  • win7iis如何做网站小程序推广平台
  • 锡盟做网站网站地址ip域名查询
  • 贵阳网站制作方舟网络百度关键词竞价排名
  • 网站建设运营费用预算nba球队排名