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

网站首页改版方案权威的企业网站建设

网站首页改版方案,权威的企业网站建设,最新网页游戏公益服,专业苏州网站建设公司哪家好单点登录#xff08;后文简称#xff1a;sso#xff09;的定义是在多个应用系统中#xff0c;用户只需要登录一次就可以访问所有相互信任的应用系统#xff08;摘自百度百科#xff09;。整个流程中涉及到的角色有#xff1a;用户。应用服务器#xff0c;即业务系统。单…单点登录后文简称sso的定义是在多个应用系统中用户只需要登录一次就可以访问所有相互信任的应用系统摘自百度百科。整个流程中涉及到的角色有 用户。应用服务器即业务系统。单点登录服务器所有业务系统登录的核心枢纽后文简称用户中心。 关于token同步的思考 从其定义中不难发现核心功能点一处登录处处登录注销亦然。那么如何实现一处登录处处登录先抛开网上各种解决思路回到问题本身。用户中心登录成功后产生的token或者说“票据”后文统一称token如果能够同步到各个业务系统而各个业务系统能成功解析token后即可认为达到了一处登录处处登录。所以关键问题在于 如何在用户中心登录成功后将token同步到各个业务系统。各业务系统如何能够成功解析token。 其中各业务系统解析token很好解决和用户中心约定一套公用的加密/解密方式即可。那么问题一由于token的存储一般在于浏览器而从用户中心服务器发起请求到各个业务系统是在浏览器端写不了token的。那么换种思路在登录成功后从浏览器端向各个业务系统发起请求写入token。 关于登录功能使用的思考 而由于用户中心被许多业务系统所使用各系统所使用的开发语言未必能完全统一于是有功能点二登录服务的调用应该是易用且与平台语言无关的。这个问题可按两种不同的思路来解决 业务系统没有登录页面直接跳转用户中心登录并将token同步至所有业务系统。业务系统有登录页面直接引用用户中心sso.js调用登录并将token同步至所有业务系统。 关于登录用户权限的思考 假定有业务系统A、B、C、D。用户1可登录系统A、B用户2可登录系统B、C、D于是有功能点三用户中心应该可以控制用户所能登录的业务系统。在登录生成token时加入能够登录的业务系统信息在登录成功后只向能够登录的业务系统发起同步token的请求并且各业务系统在token解析后需要验证token是否具有当前系统的登录权限。 关于token刷新策略的思考 关于token的刷新策略token应该什么时候刷新在sso系统中token刷新后又该如何通知到其他业务系统。第一个问题参考owin的cookie登录在请求中判断token是否超过有效期的一半超过则刷新。第二个问题就麻烦了因为token的刷新是跟随正常请求的我们就不能再使用像登录那样依靠浏览器去通知所有业务系统了关于这个问题有三种解决思路 各系统定时刷新token并通知各个业务系统。token只存于用户中心向各个业务系统发放该token的key各业务系统根据key向用户中心获取token并缓存缓存的过期时间为是token下次应该刷新的时间。共享一个分布式token存储系统可使用redis向各个业务系统发放token的key需要刷新时直接使用key刷新redis中的token。 巴拉巴拉讲了一堆也不知道大伙们能理解多少权当记录我在开发过程中的一些思考吧当然少不了大家喜闻乐见的GitHub地址https://github.com/liuxx001/sso.git下篇讲具体实现最后先放个sso.js压压惊。 var sso sso || {}; (function ($) {sso.host http://localhost:58806/;sso.utils {isEmpty: function(str) {if (typeof (str) undefined) return true;if (str.replace(/(^s*)|(s*$)/g, ).length 0) return true;return false;}};/*** 登录* param {signInfo}登录信息* {userName:,password:,rememberMe:false,returnUrl:}*/sso.login function(signInfo) {if (sso.utils.isEmpty(signInfo.userName)) {alert(用户名不能为空);return;}if (sso.utils.isEmpty(signInfo.password)) {alert(登录密码不能为空);return;}$.ajax({url: sso.host Account/SignIn,dataType: jsonp,type: GET,contentType: application/json,data: signInfo});};/*** 三方登录* param {signInfo}登录信息* {loginProvider:,providerKey:,rememberMe:false,returnUrl:}*/sso.externalLogin function(signInfo) {if (sso.utils.isEmpty(signInfo.loginProvider)) {alert(三方登录来源不能为空);return;}if (sso.utils.isEmpty(signInfo.providerKey)) {alert(三方登录唯一Key不能为空);return;}$.ajax({url: sso.host Account/ExternalSignIn,dataType: jsonp,type: GET,contentType: application/json,data: signInfo});};/*** 注销*/sso.logOut function() {$.ajax({url: sso.host Account/SignOut,dataType: jsonp,type: GET,contentType: application/json,data: {}});};/*** sso服务器登录成功后jsonp回调* param {string[]}需要通知的Url集合*/sso.notify function () {var createScript function (src) {$(script//script).attr(src, src).appendTo(body);};var urlList arguments;for (var i 1; i urlList.length; i) {createScript(urlList[i]);}//延时执行避免跳转时cookie还未写入成功setTimeout(function () {if (urlList[0] refresh) {window.location.reload();} else {window.location.href urlList[0];}}, 1000);};/*** sso服务器登录失败后jsonp回调* param {code}错误码* param {msg}错误消息*/sso.error function(code, msg) {alert(msg);} })(jQuery);   转载于:https://www.cnblogs.com/liuyh/p/6775089.html
http://www.zqtcl.cn/news/432564/

相关文章:

  • 搭建一个网站多少钱手机软件开发用什么语言
  • 太原专业网站建设杭州网络推广专员
  • 广西专业建网站橙米网站建设
  • 百度做的网站能优化吗html网站系统
  • php素材网站源码免费下载网站维护的内容有哪些
  • 打鱼跟电子游戏网站怎么做佛山微网站开发哪家好
  • 知名的网站建设网站在工信部备案
  • 网站首页的快照更新慢爆wordpress密码
  • dw做网站背景图片设置铺平微博通 wordpress
  • 勉县网站建设电商网站要素
  • 重庆旅游seo整站优化网站制作的一般步骤是什么
  • 网站建设评估体系p2p网站建设框架
  • .net 快速网站开发东莞网站建设公司哪家好
  • 东莞个人网站设计潍坊专业人员继续教育
  • 网站建设如何创业建设招标网官网
  • 公司没有销售网站怎么做业务怎么做微信推送 网站
  • 商城网站模版郴州网页定制
  • 电子商务网站建设步骤海外广告投放渠道
  • 网站用花生壳nas做存储十堰市网站建设
  • 用html5做手机网站抖音平台建站工具
  • 在线课程网站开发的研究意义网站开发需要哪些知识
  • 深圳网站优化怎么做手工艺品外贸出口公司网站建设方案
  • 从网站优化之角度出发做网站策划wordpress邀请码插件
  • 大学营销型网站建设实训课程o2o的四种营销模式
  • 咋做网站代码背景图宁远网站建设
  • 有哪些可以做网站的企业网站想换个风格怎么做
  • 怎么在百度搜索自己的网站在电脑上建设个人网站
  • wordpress网站菜单固定电商未来发展趋势前景
  • 五合一网站建设费用python 做网站 用哪个框架好
  • 波莱网站开发动态域名可以做网站吗