[英]Get Authorization from HTTP-Request header
我已經在 SO 中搜索了一些關於此的線程,但只能找到一些解釋此標頭的用途或如何在 c# 中獲取授權標頭的內容,但我不想從服務器端讀取它,而是從客戶端讀取它。
有沒有辦法從瀏覽器中獲取 Base64 編碼的標頭“授權”? 我想實現一個工具,您可以在其中登錄,如果您單擊特定按鈕,您的用戶名將被保存。
我的問題是瀏覽器會自動進行授權,而使用 jQuery 和 JavaScript 方法,您只能設置請求頭並獲取響應頭。 我找不到獲取請求標頭的方法。
庫gethttp可以獲得一些標頭,但不能獲得授權標頭。 我的猜測是這個標題是隱藏的。
我正在通過 SVN 登錄,瀏覽器在您進入網站時進行授權。
只有用戶名就足夠了。 我正在尋找用戶不必輸入用戶名的解決方案。
我假設您正在嘗試使用 Basic Realm 授權機制 這已經在 Stackoverflow 上得到了回復,並且涉及$.ajax()
jquery 對象。
如何在 jQuery 和 AJAX 中使用基本身份驗證?
所以請不要在這個問題上給我投票
$.ajaxSetup({
headers: {
'Authorization': "Basic XXXXX"
},
data: '{ "comment" }',
success: function (){
alert('Thanks for your comment!');
}
});
其中 XXXXX 是您的用戶名:密碼 base64 編碼
您可以使用本機fetch
API :
fetch("http://localhost:8888/validate",{
method:"GET",
headers: {"Authorization": "Bearer xxxxx"}
})
.then(res => res.json())
.then(
(result) => {
// do something
},
// Note: it's important to handle errors here
// instead of a catch() block so that we don't swallow
// exceptions from actual bugs in components.
(error) => {
// handle error
}
)
無法獲取當前頁面請求的標頭。 這已在 SO 上多次詢問。
但是,您可以發出新請求並檢索該請求的標頭。 這樣你就可以得到 Basic Auth 標頭,base64 解碼那個字符串,然后你就有了用戶名(還有密碼)。
可以使用@michael 在評論中建議的以下函數在 javascript 中解碼 base64。
window.atob("base64encodedString");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.