强制外部应用使用API​​

时间:2017-05-26 11:32:03

标签: rest api

我有一个网站,允许经过身份验证的用户提交和编辑数据。我还想提供REST API作为收费服务的一部分。 现在的问题是,非付费用户理论上可以使用我的网站使用的相同调用作为API进行身份验证并从外部应用程序发送数据,因为在浏览器中很容易看到端点数据的准确性和准确性发送到网站。

如何保护我的网站免受此类使用,并强制用户使用API​​进行外部访问?

2 个答案:

答案 0 :(得分:0)

实际上,您无法阻止人们向公共API发出请求。您可以在请求到达时验证用户。因此,解决这个问题的方法不止一种。

我会为每个用户提供每个会话的令牌,并在后端验证其余的API请求。

答案 1 :(得分:0)

使用OAuth2。因此,您将为付费用户提供密钥ID和密钥,然后他们将要求访问令牌使用密钥ID和密钥访问API。

了解公钥/私钥加密https://en.wikipedia.org/wiki/Public-key_cryptography

了解oAuth https://oauth.net/2/

我使用护照在laravel中实现oAuth2。护照是oAuth2的实施,也可以用其他语言提供。