网易首页 > 网易号 > 正文 申请入驻

腾讯工作心得:统一登录的几种常用设计模式

0
分享至

  

编辑导语:很多时候我们都会遇到需要登陆的情况,特别是在系统设计中,我们常遇到统一登录问题,比如在公司的多种项目上;统一登陆需要注意哪些要点,有什么设计方法?本文作者介绍了统一登录服务需要考虑的点和几种常用的设计模式,我们一起来看一下。

  

  在公司内部,如果有多个项目,每个项目都有登录,并且多个项目想要共用一套账户体系时,一般都会设计一个统一登录服务来实现业务快速接入。

  下面讲下做一个统一登录服务需要考虑的点和几种常用的设计模式:

  一、需要具备的基本要素

  注:下文的业务侧指需要接入统一登录的业务方。

  一个统一登录的登录流程:携带参数发起登录 -> 统一登录认证 -> 重定向业务后端地址 -> 业务侧注入登录态 -> 业务侧重定向到前端页面。

  从登录流程可以看出几个核心要点:

  1. 统一登录认证

  按道理统一登录服务,不是随随便便一个业务都能接入的;比如公司外部的 恶意方坚决不能让它接入,所以统一登录必须要有来源的认证。

  需要接入的业务方,一般会给它分配appId和appSecret,appId用于识别业务,比如appId=1表示是采购平台,appId=2表示是审核平台。

  appSecret是业务方秘钥,业务方需要使用密钥通过算法计算签名,只有统一登录服务才能解出这个签名,从而识别出是信任授权应用,应用认证才能通过。

  当应用认证通过后,开始校验用户,如果是新用户注册,就把业务appId和用户信息写入数据库;如果是老用户则直接校验数据库数据,用户校验成功后,整个认证成功。

  2. 认证成功后的跳转

  当认证成功后,统一服务会发起业务侧url跳转。

  上面说的业务方携带参数发起登录,这里的参数一般都有哪些呢?

  appId、签名、用户信息、个性化数据、重定向地址 (appId和签名上面已经说明用途)。

  重定向地址用于认证成功后的业务跳转,一般是业务端的后台地址,统一登录会把用户的信息透传给业务侧,业务侧一般会做:登录态注入相应的业务域名和做一些用户数据初始化的操作。

  个性化数据有什么用?当你访问一个页面时,登录态失效后会自动退出到登录页面,当再次登录成功时,按道理最好是跳转到当初退出时的具体页面。

  个性化数据就是用于存放这个登录退出前的前端页面地址,统一登录会透传这个个性化数据到业务侧,业务侧注入登录态成功后,会跳转到这个前端页面。

  当然个性化数据还可以放置其他的一些业务侧数据。

  3. 异常处理

  统一登录的过程可能会有以下的异常,要注意做好错误码和错误提示的返回。

  

  • 应用未登记指的是业务侧没有获取统一登录服务授权的appId和appSecret;
  • 用户已存在指的是数据库里已经存在同一个用户;
  • 用户注册信息不合法;
  • 认证超时;

  统一登录的登录认证一般都会做 “防重放” 的防御,意思就是业务侧发送的签名是有有效期的(有效期一般按秒计算),是为了防止恶意用户利用算好的签名重复多次登录。

  二、设计模式 1. 直接域名

  统一登录平台直接提供一个统一登录域名,当登录态失效时,业务侧重定向到统一登录地址。

  这种模式比较适用于公司内部的业务平台。这种模式的缺点是灵活性低,根据具体业务做相应的UI定制化比较麻烦。

  2. js-sdk

  sdk的方式比较灵活,其实是把登录的前端逻辑都封装在一个js-sdk当中,包括UI、发起登录请求等事件;需要接入的业务侧,只要引入这个sdk就可以使用。

  js-sdk一个比较好的优点是,在用户引用它时,它可以把登录界面以iframe的形式嵌入到业务页面当中,可以自定义满足一些业务登录界面的个性化需求,比如a业务的登录界面需要放置宣传a业务的产品信息,可自定义登录信息框的位置。

  而且js-sdk还可以提供改变登录样式的接口,可以让业务根据需求做些样式调整,比如更改统一登录信息框的背景图、字体、间距等。

  微信统一登录也是使用的这种模式,这种模式适用于开放型平台的第三方登录

  3. 网关

  什么是网关?

  大家都知道,从一个房间走到另一个房间,必然要经过一扇门。同样,从一个网络向另一个网络发送信息,也必须经过一道“关口”,这道关口就是网关。

  网关方式和上面两种不一样的地方是,它登录态的注入域名是固定的,一般是多个子域名共用父域下的登录态。

  举个例子,a.oa.com和b.oa.com2个业务平台的域名共用父域.oa.com下的登录态。

  网关的方式比较适合公司内部的公共资源平台鉴权。

  比如公司内部的oa系统、资源学习平台、用户信息平台,在访问公司内网平台时会经过公司网关,统一登录服务在网关这一层就做了拦截校验;其一是校验该业务是否接入了网关登录服务,其二是校验是否有登录态,如果没有则在网关层就直接重定向到统一登录地址。

  这是最简单的设计模式,业务侧只需要登记接入网关服务信息就可以使用,不需要像其他模式一样还要引入sdk或者做重定向;缺点是没法满足业务定制化需求,比如定制化的UI登录界面,登录成功后业务侧的业务初始化操作,登录态父域名是固定的。

  前百度前端工程师,现腾讯前端工程师,公众号:产品的技术小课。

  本文由 @lemon 原创发布于人人都是产品经理。未经许可,禁止转载。

  题图来自 Unsplash,基于 CC0 协议

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐

比东风21还要恐怖,速度每秒30万公里,一炮航母直接秒变废铁

楠竹一
2021-01-25 15:53:50

妹子,你这瑜伽做的有点不到位,需不需要我这个男教练教教你

最新热游
2021-01-26 10:22:22

孙兴慜疯狂之夜!80分钟失绝杀,6分钟后杀死比赛,再度超越C罗

我的护球最独特
2021-01-26 06:42:09

这婚结的堪比整容,林志玲嫁给黑泽良平一年半,再相见判若两人

奇闻趣事一箩筐
2021-01-24 13:09:46

什么叫国际巨星!穆里尼奥被最壮球员拉住合影,孙兴慜也被逗笑了

搜达足球
2021-01-26 15:22:35

主力资金连续5日以上持续净流入46股

证券时报
2021-01-26 18:22:48

李菲儿口红蹭到下巴上,看到黄晓明下意识的举动,难怪baby发怒

娱八扒愚
2021-01-26 09:39:19

民国天津最后一案:买大衣路上失踪的豪门太太,后被一只猫破了案

倾城之殇
2021-01-26 13:07:54

华晨宇的北京豪宅长啥样?断舍离、极简主义、活力个性、“壕”无人性,竟然都做到了!

周到上海
2021-01-26 10:26:55

杨丞琳深夜约会李荣浩!开特效自拍玩上瘾,出镜变三岁模样太稚嫩

时尚丽人派
2021-01-26 12:15:32

华晨宇未婚生子痛失邓紫棋,张碧晨成吴佩慈第二:2亿豪宅加高额抚养费!

八圈传播者
2021-01-25 22:59:04

对不起!男人眼中的微胖,长这样!

健身迷
2021-01-26 11:08:19

小偷被抓后,举报涉案超两千万的厅官,构成重大立功

新京报政事儿
2021-01-25 20:12:42

浙江捣毁大型卖淫窝点!失足少女挂价钱牌,房内一女两男共处一室

海峡都市报
2020-11-17 10:44:47

湖人险胜!詹皇天神下凡,赛后庄神抱住浓眉,奥斯曼走向勒布朗

琳视角
2021-01-26 11:43:10

中国12nm芯片将量产!欧盟宣布万亿研发计划,美国却遭“反噬”

金十数据
2021-01-26 17:13:46

被万亿级城市包围:江西,如何不被周边省份吸血?

正解局
2021-01-26 12:50:16

被强制下架的三部电视剧,前两部已恢复,最后一部“永久封禁”

八圈传播者
2021-01-25 17:13:47

杨钰莹耳环36万,胡静张馨予全身不超500元,真正幸福不用晒

椰黄娱乐
2021-01-26 17:06:17

国家鼓励甘肃、重庆发展年产1000万吨以上砂石项目

砂石骨料网
2021-01-26 16:54:00
2021-01-26 21:01:02
人人都是产品经理社区
人人都是产品经理社区
想要成为大牛先从学做产品开始
49322文章数 271140关注度
往期回顾 全部

科技要闻

征信新规:芝麻分、微信分不能用于网贷

头条要闻

国际半导体协会喊话美国:若再限制对华出口 别单干

头条要闻

国际半导体协会喊话美国:若再限制对华出口 别单干

体育要闻

致科比的一封信

娱乐要闻

刘嘉玲穿黑色深V礼服 秀傲人身材

财经要闻

汽车要闻

海外22万起国内46万起 全新丰田Sienna开卖

态度原创

旅游
本地
教育
家居
公开课

旅游要闻

日本九重山顶池塘结冰 冰封裂面太壮观了

本地新闻

F1电竞,女司机的操作就...离谱!

教育要闻

2021八省联考结束 考生:辛苦学3年不如背答案3分钟

家居要闻

张碧晨独居北京豪宅照顾闺蜜萌娃 家里装修很单调

公开课

新冠检测为何要做肛拭子采样?肛拭子怎么做?