目录

    登录的会话机制: http 是无状态协议,浏览器的每次请求都是相互独立。但并不是每次 http 请求都与状态无关,为此,浏览器和服务器需要共同维护一个状态,这就是会话机制。一种方法是,浏览器第一次向服务器发起请求,服务器会将浏览器返回 sessionID,后续浏览器的每次请求都会带上 sessionID 以验证同一用户。还有一种方法是,服务器通过发放 token,用于用户认证、App授权。本文主要介绍两种常见的登录方式:第三方登录和单点登录(SSO)。

    1. 第三方登录

    用户(一方)利用已有账号(第三方)快速完成登录注册其他网络服务(另一方),称之为第三方登录。提供ID的服务称之为,IdP(Identifier Provider,身份提供商)。提供其他服务的称之为 SP(Service Provider,服务提供商)。

    1.1 优缺点

    优点:

    1. 减少用户注册成本
    2. 维持已有的用户关系
    3. 降低开发和维护成本

    缺点:

    不利于营销信息的传达,无法获取到用户手机、邮箱等信息。

    1.2 使用场景

    适用于工具、内容提供的应用。

    1.3 实现方案

    OAuth2.0

    2. 单点登录

    用户只需要登录一次就可以访问所有相互信任的应用系统。 它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制,是目前比较流行的企业业务整合的解决方案之一。

    2.1 优缺点

    优点:

    1. 统一的用户信息中心
    2. 减少了子系统开发登录工作

    缺点:

    1. 难重构
    2. 安全风险。已登录账户,可以随意登录其他站点。
    3. 容易被选为攻击对象。

    2.2 使用场景

    适用于具有多站点的大企业,特别是公司内部系统复杂多样的系统。

    2.3 实现方案

    共享Cookie: 子系统都在一个父级域名下时,将 Cookie 种在父域下,通过 Cookie 获取 SessionID。子系统域名有限制。这种方式,其实可以看做是共享 session。

    Token 验证: 子系统需要登录时,引导至 SSO 页面登录,下发 token,子系统通过 token,调用 SSO 获取用户信息。

    3. 参考