我正在制作一个私有 API,其中客户端(应用程序)调用 API 提供者并检索或发送信息。我需要一种方法来授权或识别哪个应用程序正在执行操作,如果它可以访问它,同一个应用程序将在用户签入的不同位置使用,并且可以进行 API 调用从该位置而不是从另一个位置获取信息,但是我不确定是否通过使用 API 密钥或 OAUTH 之类的一些身份验证方法来允许这样做。
问问题
89 次
1 回答
1
一般来说,您无法 100% 确定您的客户是接收数据的人。黑客总能找到一种方法来欺骗你的程序。
尽管如此,还是有几种方法可以做某事。最好的方法是让每个客户端都有自己的密钥,他们以某种方式将其传递给服务器,进行身份验证。这些密钥必须以某种方式安全地传递到服务器。这不太可能发生。此密钥将唯一标识每个客户端。如果任何客户滥用权限,他们可能会被拒绝。
下一步是创建上面提到的密钥,使用公钥加密它们,然后将它们发送到服务器。如果您愿意,您甚至可以进行审批。
客户端查询服务器的另一种解决方案,产生一个数字。然后,用户将该号码输入他们之前登录的网站。该数字需要适当复杂,并且仅在几分钟内有效,以降低有人接管设备的风险。这适用于单向应用程序,例如 Netflix。
总而言之,这取决于您对程序的需求。
于 2012-11-24T16:12:30.063 回答