在oauth2身份验证后面加载图像

时间:2016-08-24 06:24:16

标签: javascript authentication header xmlhttprequest oauth2

我开发了一个使用oauth2身份验证的JavaScript应用程序。现在我想加载/显示来自此身份验证机制背后的服务器的图像。因此,我向休息服务器发送一个xmlHttp请求,并获取图像的URI作为响应。

在请求之后,我尝试将URI附加到图像的src,应用程序以401响应。

如何告诉浏览器重新使用我的身份验证?

这是获取URI的xmlHttp请求的一部分。

var xhr = new XMLHttpRequest();
xhr.open("GET", url, true);

xhr.setRequestHeader('Content-Type', 'application/json; charset=UTF-8');
xhr.setRequestHeader('Authorization','bearer '+token);
xhr.send(null); 

xhr.onreadystatechange = function() {
    console.log(xhr);
    if (xhr.readyState == 4 && xhr.status == 200) {
       var img = document.createElement('img');
       img.src = xhr.responseURL;
       document.body.appendChild(img);
    }
}

我忘记了什么吗?

1 个答案:

答案 0 :(得分:0)

图片是静态文件,我怀疑当您通过简单的网址提出申请时,您将能够获得OAuth2保护。虽然您可以在网址中添加OAuth2信息,这可能不是一件好事,因为它会向客户端公开所有应该是私密且安全的数据。

也许您可以考虑将来自普通受保护端点的图像作为byte []或Base64字符串提供,如果您确实需要保护图像本身,则可以在客户端呈现该字符串。

所以有一个受保护的端点,它服务于图像本身的内容。当然,如果您确实需要图像是私密且安全的,那么您只能这样做。如果你不这样做,那就让它公开,并从一个单独的CDN服务。它并不真正需要落后于OAuth2系统。