OAuth 2.0
发布日期:2025-04-22 14:34:21 浏览次数:5 分类:精选文章

本文共 997 字,大约阅读时间需要 3 分钟。

OAuth 2.0 授权机制

什么是 OAuth 2.0?

OAuth 2.0 是一种授权框架,允许第三方应用程序(如哔哩哔哩)在用户的许可下,获取对用户资源的有限或完全访问权限。例如,通过你的允许,B站可以请求微信服务器获取你的头像、昵称或 OpenID 等信息。

为什么使用 OAuth 2.0?

传统的授权方式存在以下问题:

  • 存储用户密码的风险:第三方应用程序需要存储用户的密码,通常是明文形式,存在安全隐患。
  • 权限过度授予:第三方应用程序可能获得超出其需求的资源访问权限。
  • 权限无法撤销:用户更换密码时,所有依赖该密码的第三方应用程序都会失效。
  • OAuth 2.0 提供了更安全的解决方案,通过令牌(token)机制,用户只需一次授权,第三方应用程序可根据需求获取所需资源的访问权限。

    OAuth 2.0 的关键术语

    专业称呼 通俗叫法
    资源所有者 用户
    资源服务器 验证令牌的服务器(如微信服务器)
    客户端 第三方应用程序(如 B站)
    授权服务器 发送令牌的服务器
    授权码 用于获取令牌的凭证

    OAuth 2.0 的授权模式

    OAuth 2.0 提供了多种授权模式,根据场景选择合适的模式:

    1. 授权码模式(最常用模式,适合前后端分离)

    优点:

    • 前后端分离,令牌泄露风险低
    • 安全性高

    流程:

  • B站 提供一个“微信登录”链接
  • 用户点击链接,跳转至微信授权服务器
  • 用户登录微信并确认授权
  • 微信授权服务器返回一个授权码
  • 用户代理(浏览器)将授权码发送给 B 端
  • B 端向微信授权服务器请求令牌
  • 微信授权服务器发送令牌给 B 端
  • B 端可利用令牌访问用户资源
  • 2. 隐式模式(不推荐使用,适合无后台的第三方)

    流程:

  • B 端 提供“微信登录”链接
  • 用户跳转至微信授权服务器
  • 用户登录微信并确认授权
  • 微信授权服务器直接发送令牌给 B 端
  • 3. 密码模式(适合用户极其信任第三方)

    流程:

  • B 端 使用用户提供的微信账号和密码直接向微信授权服务器索要令牌
  • 微信授权服务器发送令牌给 B 端
  • 4. 客户端模式(适合无前端的第三方,整个过程无用户参与)

    流程:

  • B 端 向微信授权服务器请求令牌
  • 微信授权服务器发送令牌给 B 端
  • OAuth 2.0 的优势

    • 安全性高:避免第三方存储用户密码
    • 灵活性强:用户可根据需求授予不同范围的权限
    • 可撤销性:用户可以单独撤销某个第三方的权限,而不影响其他第三方
    上一篇:OAuth 2.0 MAC Tokens
    下一篇:OAuth 2 深入介绍

    发表评论

    最新留言

    表示我来过!
    [***.240.166.169]2025年04月19日 04时41分23秒

    关于作者

        喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
    -- 愿君每日到此一游!

    推荐文章