我有一个angularJS应用程序,其身份验证系统使用access_token
并与Go编写的后端服务器进行通信
因此,要对用户进行身份验证,我必须将access_token
添加到每个请求?access_token=SomeTokenHere
或通过标题Access-Token: SomeTokenHere
效果很好。
问题是我的后端提供受保护的图像,出于某些安全原因,我无法将访问令牌放入图像src中(如果用户将链接复制/粘贴到其他人,则也会给出access_token ... )
我想要做的是注入包含我的访问令牌的标头,但由于请求是从浏览器发出的,因此无法实现。
使用cookie可能是可能的,但我要避免使用cookie,特别是因为angularApp和后端不在同一个子域中。
另一个想法是创建一个获取原始数据的指令,并将数据设置为图像。首先,我不知道这是否可行,对于网页上的数百张图片是个好主意吗?
如果您有任何想法,我很高兴收到您的来信!
由于
答案 0 :(得分:1)
这是典型的问题,幸运的是它已经解决了 - 例如在Amazon S3上。
解决方案的想法很简单:您可以使用该密钥生成具有访问策略的签名,而不是直接使用密钥。
有专门为此目的生成签名的优秀算法 - HMAC
您可以在服务器上使用一个密钥,并在将其发送到客户端之前使用它来对每个图像URL进行签名,还可以添加一些其他策略,如网址到期时间......