我正在寻找一种良好的做法,使用jQuery授权HTTP-Uploads到不同的服务器。
我们目前有两台服务器的设置。一个用于主Web应用程序,一个用于文件存储。用户需要能够在使用Server#1上的主应用程序时将其内容上载到第二台服务器。
关键是事实上,这些上传必须经过授权才能完成。防止用户将任何内容上传到存储服务器。所以,如果例如。用户点击"上传新的个人资料图片"主应用程序需要生成令牌并将其提交给存储服务器,然后存储服务器验证它。
现在的问题是:是否有一种更优雅的方式,例如将用户的会话注入存储服务器或任何其他最佳实践?
答案 0 :(得分:1)
我认为使用令牌是最好的做法。如果您可以设置一个通用的第三方服务器来处理可能是一个很好的起点的密钥验证,并且我已经为此包含了一个基本设置。
简单版本: 基本密钥库服务器(redis功能强大)。
让应用服务器和存储服务器都能够通过redis存储进行身份验证。
当用户需要上传时,让应用在redis商店中创建一次性(GUID)密钥。当您提交上传时,请在标题中包含此键。
当收到存储请求时,存储服务器应将密钥从标头中拉出并验证它是否在redis存储中退出,然后清除密钥。
您可以在该请求中添加您想要的任何其他数据,例如用户名,但该密钥将成为您的权威决策者。