Skip to content

常见的登录鉴权方式有哪些?

  • 原理:用户登录后,服务器创建一个 Session,将用户信息存储在服务器端,同时生成一个唯一的 SessionID,并将其以 Cookie 的形式发送给客户端。客户端之后的每次请求都携带该 Cookie,服务器用 SessionID 确认用户身份。
  • 优点:服务器管理会话状态,安全性较高;可以设置短期有效期,适合敏感信息。
  • 缺点:会消耗服务器内存,难以扩展;需跨域配置。

2. JWT(JSON Web Token)

  • 原理:登录成功后,服务器生成一个加密的 JWT,该令牌包含用户信息或标识,发送给客户端。之后的请求,客户端携带该 JWT,服务器通过验证 JWT 的签名来确认用户身份。
  • 优点:无状态、可跨域,适合分布式架构;可携带信息,支持用户角色验证。
  • 缺点:令牌较长,增加请求负担;一旦泄露容易被滥用。

3. OAuth

  • 原理:OAuth 是一种授权协议,用户通过第三方平台(如 Google、Facebook)登录,将权限授予该平台来访问某些资源。OAuth 2.0 使用 Access Token 访问受保护资源,Refresh Token 则用于获取新的 Access Token
  • 优点:用户体验好,适用于第三方应用授权登录;支持多级权限。
  • 缺点:流程复杂,难以实现;Token 可能泄露或失效。

4. SAML(Security Assertion Markup Language)

  • 原理:SAML 是基于 XML 的单点登录协议,通常用于企业系统中。用户请求通过 SAML 协议在多个系统之间共享认证状态,允许用户在不重新登录的情况下访问其他应用。
  • 优点:适用于企业内部系统间的统一登录;支持跨域。
  • 缺点:复杂度高,基于 XML 的消息传递效率低。

5. SSO(Single Sign-On)

  • 原理:单点登录允许用户使用一个登录凭据访问多个应用或系统。常用的实现方案包括基于 OAuth、SAML 或 CAS(Central Authentication Service)。
  • 优点:提高用户体验,避免多次登录;适用于多系统集成。
  • 缺点:一旦账户泄露,多个系统都会受到威胁。

6. 基于短信或邮件的 OTP(一次性密码)

  • 原理:用户登录时接收一个一次性密码(通常通过短信或邮件发送),有效期较短。用户输入正确的 OTP 后,即可完成登录。
  • 优点:安全性高,适合敏感操作的二次验证。
  • 缺点:需要借助短信或邮件服务,成本较高。

7. 指纹、面部识别等生物识别

  • 原理:利用设备上的生物识别传感器进行身份认证,例如指纹、面部识别等。通常用于设备级别的解锁,或结合其他鉴权方式进行身份确认。
  • 优点:用户体验佳、难以复制;适合移动设备的安全验证。
  • 缺点:设备依赖性强;难以在 web 应用中普遍使用。

题目要点:

不同的鉴权方式适合不同场景,选择适合的方案需要考虑系统架构、安全性、用户体验以及成本。常见的 Web 应用通常使用 JWTCookie + Session,而企业级应用偏向 SSO 或 SAML 等统一认证协议。