{"schemaVersion":"drillso.agent.session.v1","scope":"node","resource":{"type":"shared-session","shareId":"B_Qh5EPwQq0l","title":"API Key 和 Bearer Token 是什么，有啥区别？","canonicalUrl":"https://drillso.com/en/share/sessions/B_Qh5EPwQq0l/bearer-token-742ad9d9","agentUrl":"https://drillso.com/en/share/sessions/B_Qh5EPwQq0l/agent.json?node=bearer-token-742ad9d9","ownerName":"pyth0nb3st","updatedAt":"2026-04-28T10:23:26.413Z"},"currentNode":{"id":"742ad9d9-793c-439c-9542-82a2fbc17a56","slug":"bearer-token-742ad9d9","title":"Bearer Token","type":"quiz","url":"https://drillso.com/en/share/sessions/B_Qh5EPwQq0l/bearer-token-742ad9d9","agentUrl":"https://drillso.com/en/share/sessions/B_Qh5EPwQq0l/agent.json?node=bearer-token-742ad9d9","text":"Q: Bearer Token 中的 “Bearer” 最准确的含义是什么？\n  - 只有令牌的签发者才能使用它\n  - 谁持有这个令牌，谁就可以凭它访问对应资源\n  - 令牌必须和 API Key 一起使用才有效\n  - 令牌只能用于识别应用，不能表示用户授权状态\n\nQ: Bearer Token 在 HTTP 请求中最常见的携带方式是？\n  - 放在 URL 查询参数中，例如 ?token=xxx\n  - 放在 Authorization Header 中，例如 Authorization: Bearer xxx\n  - 放在 Host Header 中，例如 Host: Bearer xxx\n  - 放在 Content-Type Header 中，例如 Content-Type: Bearer xxx\n\nQ: 相比 API Key，Bearer Token 通常更适合哪类场景？\n  - 统计某个开发者应用的调用次数\n  - 给第三方应用一个长期固定的调用编号\n  - 用户登录后访问自己的个人资料接口\n  - 只做最简单的服务识别，不涉及权限范围\n\nQ: 为什么 Bearer Token 泄露后存在较高风险？\n  - 因为服务端无法验证 Bearer Token 是否存在\n  - 因为任何拿到有效 Bearer Token 的人都可能冒充持有者访问资源\n  - 因为 Bearer Token 一定永不过期\n  - 因为 Bearer Token 只能通过明文 HTTP 传输","markdown":"# Bearer Token\n\nQ: Bearer Token 中的 “Bearer” 最准确的含义是什么？\n  - 只有令牌的签发者才能使用它\n  - 谁持有这个令牌，谁就可以凭它访问对应资源\n  - 令牌必须和 API Key 一起使用才有效\n  - 令牌只能用于识别应用，不能表示用户授权状态\n\nQ: Bearer Token 在 HTTP 请求中最常见的携带方式是？\n  - 放在 URL 查询参数中，例如 ?token=xxx\n  - 放在 Authorization Header 中，例如 Authorization: Bearer xxx\n  - 放在 Host Header 中，例如 Host: Bearer xxx\n  - 放在 Content-Type Header 中，例如 Content-Type: Bearer xxx\n\nQ: 相比 API Key，Bearer Token 通常更适合哪类场景？\n  - 统计某个开发者应用的调用次数\n  - 给第三方应用一个长期固定的调用编号\n  - 用户登录后访问自己的个人资料接口\n  - 只做最简单的服务识别，不涉及权限范围\n\nQ: 为什么 Bearer Token 泄露后存在较高风险？\n  - 因为服务端无法验证 Bearer Token 是否存在\n  - 因为任何拿到有效 Bearer Token 的人都可能冒充持有者访问资源\n  - 因为 Bearer Token 一定永不过期\n  - 因为 Bearer Token 只能通过明文 HTTP 传输","structured":{"questions":[{"options":[{"text":"只有令牌的签发者才能使用它","isCorrect":false,"explanation":"Bearer Token 的使用者不一定是签发者，而是持有该令牌的一方。"},{"text":"谁持有这个令牌，谁就可以凭它访问对应资源","isCorrect":true,"explanation":"“Bearer” 表示“持有者”，Bearer Token 是一种持有即有效的访问令牌。"},{"text":"令牌必须和 API Key 一起使用才有效","isCorrect":false,"explanation":"Bearer Token 通常可以单独用于授权访问，不要求必须搭配 API Key。"},{"text":"令牌只能用于识别应用，不能表示用户授权状态","isCorrect":false,"explanation":"Bearer Token 通常用于表示用户或客户端已经认证并获得授权。"}],"question":"Bearer Token 中的 “Bearer” 最准确的含义是什么？","difficulty":"easy"},{"options":[{"text":"放在 URL 查询参数中，例如 ?token=xxx","isCorrect":false,"explanation":"虽然技术上可以这样做，但不推荐，也不是最常见方式，因为容易被日志或浏览器历史记录泄露。"},{"text":"放在 Authorization Header 中，例如 Authorization: Bearer xxx","isCorrect":true,"explanation":"Bearer Token 最常见、标准的用法是放在 Authorization 请求头中，并使用 Bearer 前缀。"},{"text":"放在 Host Header 中，例如 Host: Bearer xxx","isCorrect":false,"explanation":"Host Header 用于指定目标主机，不用于认证授权。"},{"text":"放在 Content-Type Header 中，例如 Content-Type: Bearer xxx","isCorrect":false,"explanation":"Content-Type 用于描述请求体格式，不用于传递访问令牌。"}],"question":"Bearer Token 在 HTTP 请求中最常见的携带方式是？","difficulty":"easy"},{"options":[{"text":"统计某个开发者应用的调用次数","isCorrect":false,"explanation":"这更常见于 API Key 的使用场景。"},{"text":"给第三方应用一个长期固定的调用编号","isCorrect":false,"explanation":"长期固定的调用凭证更接近 API Key 的特征。"},{"text":"用户登录后访问自己的个人资料接口","isCorrect":true,"explanation":"Bearer Token 常用于登录授权后表示某个用户或客户端已获得访问权限。"},{"text":"只做最简单的服务识别，不涉及权限范围","isCorrect":false,"explanation":"这种简单识别更适合 API Key；Bearer Token 更常用于表达授权状态和访问权限。"}],"question":"相比 API Key，Bearer Token 通常更适合哪类场景？","difficulty":"medium"},{"options":[{"text":"因为服务端无法验证 Bearer Token 是否存在","isCorrect":false,"explanation":"服务端通常会验证 Bearer Token 的有效性、过期时间、签名或存储状态。"},{"text":"因为任何拿到有效 Bearer Token 的人都可能冒充持有者访问资源","isCorrect":true,"explanation":"Bearer Token 的核心特性是“持有即有效”，因此一旦泄露，攻击者可能直接使用它访问受保护资源。"},{"text":"因为 Bearer Token 一定永不过期","isCorrect":false,"explanation":"Bearer Token 通常支持过期时间，很多系统会设置较短生命周期。"},{"text":"因为 Bearer Token 只能通过明文 HTTP 传输","isCorrect":false,"explanation":"Bearer Token 并不要求明文传输，实际使用中应通过 HTTPS 保护传输安全。"}],"question":"为什么 Bearer Token 泄露后存在较高风险？","difficulty":"medium"}]},"children":[]},"breadcrumbs":[{"id":"37cc254f-9d7d-4893-a45a-b72b31f0d63c","slug":"api-key-和-bearer-token-是什么，有啥区别？-37cc254f","title":"API Key 和 Bearer Token 是什么，有啥区别？","type":"page","url":"https://drillso.com/en/share/sessions/B_Qh5EPwQq0l/api-key-%E5%92%8C-bearer-token-%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%8C%E6%9C%89%E5%95%A5%E5%8C%BA%E5%88%AB%EF%BC%9F-37cc254f","agentUrl":"https://drillso.com/en/share/sessions/B_Qh5EPwQq0l/agent.json?node=api-key-%E5%92%8C-bearer-token-%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%8C%E6%9C%89%E5%95%A5%E5%8C%BA%E5%88%AB%EF%BC%9F-37cc254f"}],"parent":{"id":"37cc254f-9d7d-4893-a45a-b72b31f0d63c","slug":"api-key-和-bearer-token-是什么，有啥区别？-37cc254f","title":"API Key 和 Bearer Token 是什么，有啥区别？","type":"page","url":"https://drillso.com/en/share/sessions/B_Qh5EPwQq0l/api-key-%E5%92%8C-bearer-token-%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%8C%E6%9C%89%E5%95%A5%E5%8C%BA%E5%88%AB%EF%BC%9F-37cc254f","agentUrl":"https://drillso.com/en/share/sessions/B_Qh5EPwQq0l/agent.json?node=api-key-%E5%92%8C-bearer-token-%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%8C%E6%9C%89%E5%95%A5%E5%8C%BA%E5%88%AB%EF%BC%9F-37cc254f"},"children":[],"fullTree":null,"warnings":[],"truncated":false}