了解 oAuth 隐式流程

Understanding oAuth implicit flow

我正在使用 New Twitch API,我希望使用 javascript 获取数据和终点。

端点https://dev.twitch.tv/docs/api/reference/#get-streams

对于测试方法,我正在使用 Postman 访问端点并且它正在运行。

根据文档,我需要提供一个 client-id,我可以从我的开发人员仪表板中获取它,并将其添加为 Postman 中的 header。

我很疑惑的是,好像只要有人client-id(用JS会暴露)任何人都可以达到这个终点?是什么阻止了有人拿走我的 client-id 或我拿走别人的东西并将其用于 their/my 自己的目的,这样做有什么风险?

一般来说,Redirection URL 才是关键。

流程是这样的:

  1. 您在 Twitch 注册了您的应用程序。作为此步骤的一部分,您指定 redirection URL (https://dev.twitch.tv/docs/authentication/#registration)
  2. 用户访问使用 API
  3. 的网页
  4. 用户需要进行身份验证。该网页传递给 Twitch OAUTH 身份验证页面,并传递其 Client ID
  5. 用户通过 Twitch 进行身份验证
  6. Twitch 将用户重定向到在步骤 #1 中设置的 Redirection URL,以及 Bearer Token.

正如您在第 5 步中看到的,令牌仅发送回 您的 Redirection URL. 如果另一个网站试图使用您的 [=12] 对用户进行身份验证=] 他们永远不会收回令牌。

我认为您可能 运行 遇到麻烦的领域是速率限制。 Twitch 将您限制为每分钟 30 个查询 Client ID 和没有 Bearer Token 或每分钟 120 个查询。如果恶意用户正在使用您的客户端 ID,那么它会耗尽您的速率限制。 https://dev.twitch.tv/docs/api/guide/