了解 oauth 2.0 中客户端 ID、客户端密码的需求

Understanding the need of client id, client secret in oauth 2.0

我有一个网站,要求用户通过提供他们的电子邮件和密码登录以获得访问令牌,其中访问令牌令牌用于访问 api。

然后用户可以在访问令牌提供的范围内访问 read/write。

所以,我想在这里了解的是,在这种情况下,client id 和client secret 扮演什么角色,实施client id 和client secret 可以提供什么好处?因为我真的不认为需要实现客户端 ID 和客户端密码,因为用户可能只是使用访问令牌来获得访问权限。

通过使用客户端 ID/密码,您可以潜在地控制允许哪些客户端连接到您的 API 并做出诸如限制或阻止它们的速率等决定。这就是例如推特可以确保不允许其他推特客户端拥有超过 100,000 个用户。

如果没有客户端 ID 也能实现您的目标,则无需发布客户端 ID。例如,如果您有权直接处理电子邮件(用户 ID)和密码,则不需要客户端 ID。

通常,仅当您希望允许(第三方)客户端应用程序以受限权限访问(您的服务的)用户数据时才需要客户端 ID。在这种情况下,每个客户端应用程序都必须获得用户的授权。因此,您的系统将需要客户端 ID 来了解用户向哪个客户端应用程序授予了权限。