Ruby 如何在不公开API密钥的情况下发出POST请求?

Ruby 如何在不公开API密钥的情况下发出POST请求?,ruby,ruby-on-rails-3,post,imageshack,Ruby,Ruby On Rails 3,Post,Imageshack,使用我可以上传图像到imageshack,但我必须使用API密钥才能做到这一点。我可以为上传到imageshack的图像创建一个POST表单,但是密钥必须放在表单中,并且公开API密钥。如何在不公开API密钥的情况下将图像上载到imageshack?我认为唯一正确的方法是用户首先将图像发布到自己的应用程序中 然后在你的应用程序中,你在内部将这篇文章重定向到ImageShack,在那里你可以安全地使用你的API密钥,而没有人看到它 您可以使用一些简单的方法从后端运行POST请求。您需要将映像临时存

使用我可以上传图像到imageshack,但我必须使用API密钥才能做到这一点。我可以为上传到imageshack的图像创建一个POST表单,但是密钥必须放在表单中,并且公开API密钥。如何在不公开API密钥的情况下将图像上载到imageshack?

我认为唯一正确的方法是用户首先将图像发布到自己的应用程序中

然后在你的应用程序中,你在内部将这篇文章重定向到ImageShack,在那里你可以安全地使用你的API密钥,而没有人看到它

您可以使用一些简单的方法从后端运行POST请求。您需要将映像临时存储在服务器上(内存或磁盘中),以便重新传输到ImageShack

因此:

  • 用户将带有POST的图像发送到服务器
  • 服务器从用户的POST请求中接收图像
  • 您的服务器使用API密钥将此图像发送到ImageShack
  • 步骤1中的POST请求成功返回给用户

  • 您可以在发送请求之前要求用户登录。登录成功后,生成一个令牌(将其存储在数据库中),并随请求一起发送。在服务器端,如果令牌存在,则处理请求,如果不存在,则发送一个json,说明{:error=>“Invalid token”}我正在上载到imageshack,而不是我的服务器。这就是问题所在。如果我上传到我的服务器上,我可以遵循你的技术。是的,我明白,通过两步走的方式,我可以很容易地做到;但我想要一个简单的方法。之前,我实现了两步的方法,我只是想确保没有一步的方法。不,我认为ImageShack API甚至不打算在一步流程中使用。用户的浏览器将在ImageShack服务器上的一个奇怪的API“页面”上结束,该页面只打算被后端用作API。例如,PayPal使用加密的POST参数来实现类似于一步流程的功能,但IS似乎没有提供类似的接口。