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

论文写作数据网站114啦网址导航建站系统

论文写作数据网站,114啦网址导航建站系统,wordpress-Cosy主题,网站建设中的技术问题随着前端登录场景的日益复杂化和技术思想的不断演进#xff0c;前端在登录方面的知识结构变得越来越复杂。对于前端开发者来说#xff0c;在日常工作中根据不同的登录场景提供合适的解决方案是我们的职责所在#xff0c;本文将梳理前端登录的演变过程。 1、无状态的HTTP H…随着前端登录场景的日益复杂化和技术思想的不断演进前端在登录方面的知识结构变得越来越复杂。对于前端开发者来说在日常工作中根据不同的登录场景提供合适的解决方案是我们的职责所在本文将梳理前端登录的演变过程。 1、无状态的HTTP HTTP是无状态的每条请求都是独立进行的。同一个用户多次发起请求服务端无法识别多个HTTP请求来自同一个用户。为了解决这个问题引入了会话机制(session)。 2、基于会话(session)的认证 会话(session)机制使每条HTTP请求之间保持客户端的状态信息。session对象保存在服务端的内存或数据库中这个session对象包含有用户的基本信息。sessionId(会话ID)保存在客户端中的cookie或localstorage中每次客户端向服务端发送请求时都会携带sessionId服务端拿到sessionId对该请求进行身份验证。sessionId在请求传输过程中可以被放置在cookie中也可以放置在body中。 基于会话的认证方式是传统的方法在很长的时间内被使用。但也存在一些缺点 服务器负担大。服务端需要为每个用户维护一个会话对象这可能在大规模应用中导致服务器负载增加水平扩展困难。在分布式架构中即应用程序在多个服务器上运行时用户可能会在不同的服务器上交替访问应用程序所以需要确保服务器之间可以共享会话状态。不适用于无状态服务。对于RESTful API这种无状态服务更适合基于令牌的认证方式。 3、跨域认证 随着前后端开发模式的变化前端和后端更倾向于分开部署前端的静态资源部署在一个服务器中后端的API部署在另外一个服务器中。这意味着前端的登录需要进行跨域认证。跨域认证即使用跨域请求的方式进行身份认证。常见的几种跨域认证方案: JSOP只能用于跨域请求不能进行身份验证CORS可以进行跨域请求和身份认证。但是当多个业务系统调用同一个API服务下的接口时随着业务系统数量的增长后端开发人员需要频繁地更改跨域配置才能使新开发的系统可以进行跨域请求。当出现这种情况时使用nginx反向代理将跨域的控制权移交至前端是更好的方案。代理使用nginx做代理将跨域请求转发至目标服务器并将响应返回给客户端。 iframe场景下使用localstorage做跨域存储通过postmessage和iframe的方式跨域共享localstorage但是safari不能使用postMessage可以改用url方式跨域共享localstorage 4、基于令牌(token)的认证 为了解决在分布式架构中session认证存在的问题可以使用基于token的认证方式。由于token只会存储在客户端这样可以减少服务端的负担和提升了服务端水平扩展能力。 基于令牌token的认证时序图 优点 减少服务端的负担。因为token只会存储在客户端上不会存储在服务端。提升了服务端水平扩展能力。因为服务端水平扩展不再需要处理会话状态的同步逻辑。 缺点 签发的token无法撤销。token包含了有效期信息在整个有效期内不能撤销直至过期。无法实现单点登出。如果使用令牌方式实现单点登录SSO功能那么难以实现单点登出SLO。因为单点登出涉及到在所有相关联系统中注销用户所以要实现此功能需要额外的机制配合。 以上是最基础版本的令牌的认证方式还存在着一些缺点主要用来阐述令牌认证的核心流程。要规避掉上述缺点还需要配合其他机制(下面OAUTH部分会更深一步讲解)。 令牌token的生成 token最常见的方式是JWT(JSON Web Token)JWT是为了在网络应用环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519)该token被设计为紧凑且安全的特别适用于分布式站点的单点登录SSO场景。JWT由三部分组成由.分割形如Header.Payload.Signature。 1. Header(头部) Header部分是一个JSON对象描述JWT元数据如下 {alg: HS256,typ: JWT } alg表示签名的算法type表示令牌的类型。最后将上面的JSON对象使用Base64URL算法转成字符串。 2. Payload(负载) payload部分是一个JSON对象表示JWT实际传输的数据官方定义了如下字段供选择 - iss (issuer)签发人 - exp (expiration time)过期时间 - sub (subject)主题 - aud (audience)受众 - nbf (Not Before)生效时间 - iat (Issued At)签发时间 - jti (JWT ID)编号也可以自定义字段最后将上面的JSON对象使用Base64URL算法转成字符串。 3. Signature(签名) signature部分是对前两部分的签名防止数据被篡改。公式如下 HMACSHA256(base64UrlEncode(header) . base64UrlEncode(payload),secret) secret是由服务端才有的密钥。 5、单点登录(SSO) 用户只需要登录一次就可以在多个相关联的系统上访问避免了多次登录的麻烦。单点登录简化了登录流程提升了用户体验。目前有两种比较常见的实现方式CAS和OIDC。 CAS CAS(Central Authentication Service)是一种用于实现单点登录SSO的开源协议。它提供了一个中心化的认证服务器(CAS),CAS服务器负责用户的登录和身份认证并生成一个票据(ticket)用于访问其他应用程序。如下图是CAS标准流程的时序图 需要注意的几点 CAS是基于票据(ticket)实现单点登录的。票据是一种身份验证凭据与token有一定区别。CAS中包含有TGT和ST两种ticket。TGT是长期有效的凭据用于获取短期的ST凭据ST凭据用来向特定服务验证身份的。 OIDC(OpenID Connect) OAUTH是一个授权协议在全世界得到了广泛的应用目前是2.0版本但并不是专门针对单点登录SSO设计的协议。OIDC是基于OAUTH实现的身份认证协议是OAUTH的超集可以实现单点登录功能。与CAS不同的是OIDC是基于token的认证方式。 1. OAUTH2.0 OAUTH是一个授权协议是为了解决同一个账号可以登录所有应用的问题。现在很多第三方应用都接入了微信登录那么微信登录就是一个大的身份认证服务所有接入了微信登录体系的APP都可以使用微信账号直接登录。 1.1. OAUTH2.0 原理 OAuth 2.0的运行流程如下图摘自RFC 6749。 认证服务器除了返回access token,refresh token也是可选项。 access token表示访问令牌。有效期短解决token无法撤销问题。refresh token表示更新令牌。有效期长用于获取access token。 2. OIDC 下图是网上找到的一张基于token实现单点登录的时序图虽然与标准的OIDC流程不一样但是也大致说清楚了基于token实现单点登录的流程 CAS与OIDC的总结 CAS业务系统是基于session的保持登录态而OIDC业务系统是基于token的CAS单点登录的方式更适合企业内部各个业务系统之间统一单点登录而OIDC除了单点登录还可以为第三方软件提供授权服务
http://www.hkea.cn/news/14581764/

相关文章:

  • 旅游响应式网站建设宜昌网站开发
  • 北京网站建设公司完美湖南岚鸿首 选定制网站建设济南
  • 苏州网站制作价格链接网站开发需要多少钱
  • 网软志成企业网站管理系统wordpress怎么设置标签分类
  • 可以做一键拨号和导航的网站wordpress目录标题
  • 手机网站免费生成app影响seo排名的因素
  • 郑州网站建设丶汉狮网络wordpress站内搜索
  • 个人怎样做旅游网站什么是网络社交安全
  • 辽宁东方建设工程有限公司网站seo优化教程自学网
  • 报送举报网站建设情况个人网站设计制作步骤
  • 电子商务网站网络拓扑图wordpress自动链接到图片大小
  • 外贸网站建站系统dw网页制做教程
  • 成都旅游网站建设规划wordpress 统计ip
  • 阿里云建站中级版和高级版新加坡网站域名
  • 阿里云服务器搭建wordpress惠州seo排名收费
  • 网站建设在电子商务中的作用怎样买空间做网站
  • 网站源码绑定域名处理网络推广方法
  • 协同办公oa福州seo网站建设
  • 阿里建设网站建筑人才网筑才网
  • 制作投票网站怎样建设打字网站
  • 代做网站排名wordpress搜索字段
  • 学校门户网站是什么意思河南工程建设交易信息网
  • 旅游网站建设ppt模板下载潍坊专业网站建设最新报价
  • 铜陵市建设局网站做网站域名的设置
  • 昆明网站建设方案托管上海网页设计公司名单
  • 专门做单页的网站食品包装设计风格
  • 新乡 网站开发招商码头无忧查询系统
  • 网站管理系统有哪些网站建设不备案后果
  • 北京高端网站制作做qq链接的网站
  • 石景山 网站建设设计页面尺寸图