[关闭]
@kinghan 2015-03-02T02:25:10.000000Z 字数 771 阅读 3065

账号系统整体架构及SSO规范

MoreTV 账号系统 整体架构 SSO流程及规范


整体架构

系统架构图

注解:

  • bbs与account作为uc_server的应用接入,其与uc_server的通信数据是经过应用的key加密过的
  • uc_server的avatar.php与admin.php是唯一暴露在外网的接口
  • 数据库的读写分离, 当前没有从代码层面考虑而是使用了mysql proxy(ameoba), 通过配置文件实现透明的读写分离
  • 官网home是静态的,没有作为应用接入uc_server, 对用户登陆状态的判断是通过读取.moretv.com.cn的cookie来实现的

核心流程

登陆

sso同步登陆sequence diagram

注册

sso之注册sequence diagram

SSO相关

京东

  1. 实现方案

    • 其核心应用了cookie跨域的策略(P3P)
    • 用户登陆的时候, 系统会向.jd.com域名中写入相关cookie
    • 用户进入非jd.com的网站时,服务器端会读取跨域的cookie并为当前网站设置一份cookie
  2. sequence diagram草图(供参考)
    京东sso登陆图

  3. 优缺点
    • 简单便捷, 易于实现
    • 子系统之间的耦合性较高

小米

  1. 实现方案

    • 每个系统都维护一套自己写cookie的逻辑, 不跨越读取cookie
    • 子系统登陆的时候会跳转到account, 用户验证后会跳转到子系统传过去的callback, 然后子系统处理自己的cookie
  2. sequence diagram草图(供参考)
    小米sso登陆图

  3. 优缺点

    • 流程逻辑较为复杂, 维护成本相对较高
    • 各个子系统之间是相互独立的, 耦合性较低
    • 每个子系统都需要分别维护自己的登陆退出逻辑

现阶段的MoreTV

综合考虑京东和小米的多系统登陆退出策略, MoreTV初步的SSO规范如下:

  • 与账号相关的网站都以子系统的形式接入uc_server
  • 同一个二级域名的情况下, 采用写二级域名cookie作为实现方案
  • 不同二级域名的情况下, 采用发送多个同步登陆退出作为实现方案

作者: king.han
2015 年 2 月 6 日

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注