如何使用access_token在angularJS应用程序中验证对图像的请求

时间:2014-10-05 15:46:48

标签: angularjs security cookies

我有一个angularJS应用程序,其身份验证系统使用access_token并与Go编写的后端服务器进行通信

因此,要对用户进行身份验证,我必须将access_token添加到每个请求?access_token=SomeTokenHere或通过标题Access-Token: SomeTokenHere

效果很好。

问题是我的后端提供受保护的图像,出于某些安全原因,我无法将访问令牌放入图像src中(如果用户将链接复制/粘贴到其他人,则也会给出access_token ... )

我想要做的是注入包含我的访问令牌的标头,但由于请求是从浏览器发出的,因此无法实现。

使用cookie可能是可能的,但我要避免使用cookie,特别是因为angularApp和后端不在同一个子域中。

另一个想法是创建一个获取原始数据的指令,并将数据设置为图像。首先,我不知道这是否可行,对于网页上的数百张图片是个好主意吗?

如果您有任何想法,我很高兴收到您的来信!

由于

1 个答案:

答案 0 :(得分:1)

这是典型的问题,幸运的是它已经解决了 - 例如在Amazon S3上。

解决方案的想法很简单:您可以使用该密钥生成具有访问策略的签名,而不是直接使用密钥。

有专门为此目的生成签名的优秀算法 - HMAC

您可以在服务器上使用一个密钥,并在将其发送到客户端之前使用它来对每个图像URL进行签名,还可以添加一些其他策略,如网址到期时间......