Ios 如何仅允许我自己的应用程序访问我的API

Ios 如何仅允许我自己的应用程序访问我的API,ios,ruby-on-rails,authentication,rails-api,Ios,Ruby On Rails,Authentication,Rails Api,我正在为我的rails应用程序构建一个API。通过该API,我将登录用户并允许他们与数据交互 在用户身份验证的基础上,我还希望确保只有我的iOS应用程序可以访问API,并最终访问我自己的web应用程序 我想确保没有其他人会使用API,因此在用户身份验证的基础上,我想为我的每个应用程序使用一个令牌来保护我的API 你通常如何解决这个问题?我是否必须在每次调用时传递该令牌,以便验证调用是否来自有效的客户端,并确定它是哪个客户端(web vs iOS) 如果您知道如何处理此问题的文章,我将非常感谢您的

我正在为我的rails应用程序构建一个API。通过该API,我将登录用户并允许他们与数据交互

在用户身份验证的基础上,我还希望确保只有我的iOS应用程序可以访问API,并最终访问我自己的web应用程序

我想确保没有其他人会使用API,因此在用户身份验证的基础上,我想为我的每个应用程序使用一个令牌来保护我的API

你通常如何解决这个问题?我是否必须在每次调用时传递该令牌,以便验证调用是否来自有效的客户端,并确定它是哪个客户端(web vs iOS)


如果您知道如何处理此问题的文章,我将非常感谢您的指点。

既然您已经在使用jwt对您的用户进行身份验证,为什么不使用jwt的功能在令牌中包含其他信息呢,在本例中,使用某种形式的哈希字符串,您可以验证服务器端是否为有效的“客户机id”。 对于每个请求,您都可以刷新字符串


每个请求中的双重身份验证。用户和客户。

谢谢@JigneshAgola,我正在使用jwt对用户进行身份验证。也许我只是混淆了概念,但除了验证用户之外,我想做的是只授权我的应用程序针对API发出请求,并阻止其他人针对我的API构建应用程序。我喜欢这个想法@stewartHow它会启动吗?仅根据传递的“客户端id”,如何区分我的应用程序与其他应用程序或邮递员请求?“客户端id”将从客户端发送到服务器,因此攻击者如何不容易发现该“客户端id”并在其自己的请求中使用它?@Simone我知道这是很久以前的事了,但这里的解释是: