通过仅允许来自特定应用程序的 iOS 或 Android 设备的请求来保护 REST 服务提供程序(假设在 google appengine 上运行的 java servlet)的最佳解决方案是什么?
假设我有一个在 google appengine 上运行的 servlet,它进行一些处理并使用一些 JSON 数据响应 GET 请求。我想限制对我在 Android 和 iOS 上运行的应用程序的访问。
我目前的解决方案是:
if(tokenValue == request.getHeader(tokenKey))
在 appengine servlet 上使用。在response.addHeader(tokenKey, tokenValue)
移动应用程序的代码上。所以基本上只有我的应用程序会知道令牌密钥。- 对上述解决方案使用HTTP(s) ,appengine 支持这个
- 使用oAuth - 但我需要让用户从应用程序登录到某些 oAuth 提供程序,这会使应用程序复杂化
建议其他有用的方法来解决这个问题。假设这个 servlet 只服务于 GET 请求并且可能使用 Restlet 或 Jackson