2016-08-24 52 views
0

我開發了一個使用oauth2認證的JavaScript應用程序。現在我想要加載/顯示來自服務器的圖像,這是身份驗證機制的後面。因此,我向其餘服務器發送一個xmlHttp請求,並獲取圖像的URI作爲響應。在oauth2認證背後加載圖像

後,要求我嘗試將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); 
    } 
} 

我忘了什麼嗎?

回答

0

圖像是一個靜態文件,我懷疑當你通過一個簡單的URL請求時,你將能夠獲得OAuth2保護。雖然您可以在您的URL中添加OAuth2信息,但這可能不是一件好事,因爲它會向客戶端公開所有應該是私密和安全的數據。

也許你可以考慮從正常的受保護的端點提供圖像作爲byte []或Base64字符串,如果你真的需要保護圖像本身,你可以在客戶端渲染它。

因此,有一個受保護的端點服務於圖像本身的內容。當然,如果你真的需要這個圖像是私密和安全的,你只能這樣做。如果你不這樣做,就讓它公開,並從一個單獨的CDN提供服務。它並不需要落後於OAuth2系統。

+0

謝謝迪爾的答案。但這是關鍵。文件(圖片)非常明智,不應該公開。 – Draftsman