了解 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
才是关键。
流程是这样的:
- 您在 Twitch 注册了您的应用程序。作为此步骤的一部分,您指定
redirection URL
(https://dev.twitch.tv/docs/authentication/#registration)
- 用户访问使用 API
的网页
- 用户需要进行身份验证。该网页传递给 Twitch OAUTH 身份验证页面,并传递其
Client ID
- 用户通过 Twitch 进行身份验证
- 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/
我正在使用 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
才是关键。
流程是这样的:
- 您在 Twitch 注册了您的应用程序。作为此步骤的一部分,您指定
redirection URL
(https://dev.twitch.tv/docs/authentication/#registration) - 用户访问使用 API 的网页
- 用户需要进行身份验证。该网页传递给 Twitch OAUTH 身份验证页面,并传递其
Client ID
- 用户通过 Twitch 进行身份验证
- 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/