[英]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.