Javascript 授权头行为的澄清
我正在为一个实践网站编写认证机制。我已经设法创建了一个安全令牌,但我希望在登录后的每个后续请求中都发送该令牌,以便对其进行授权 理想情况下,我希望将其设置为授权标头,但我认为如果用户通过浏览器栏访问URL,则不会设置标头 如何让客户端在每次访问我的域时记住发送授权头 此外,我理想情况下不希望将令牌作为cookie发送 TL;医生: 我对授权标头行为有几个问题:Javascript 授权头行为的澄清,javascript,html,css,http,https,Javascript,Html,Css,Http,Https,我正在为一个实践网站编写认证机制。我已经设法创建了一个安全令牌,但我希望在登录后的每个后续请求中都发送该令牌,以便对其进行授权 理想情况下,我希望将其设置为授权标头,但我认为如果用户通过浏览器栏访问URL,则不会设置标头 如何让客户端在每次访问我的域时记住发送授权头 此外,我理想情况下不希望将令牌作为cookie发送 TL;医生: 我对授权标头行为有几个问题: 我是否需要在每个请求中发送授权标头,还是浏览器会自动发送 如果它不是自动的,那么来自浏览器栏中用户输入的GET请求将永远不会被验证,因为
我使用的javascript没有任何框架。我将尝试回答您的问题
我希望这能回答您的问题。对于
Basic
和Digest
身份验证中的Authorization
标题,您的问题的答案是:
“如何让客户端在每次访问我的域时记住发送授权标头?”
只要符合以下要求,客户端将自动记住并发送授权标头:
客户机应假定所有路径的深度等于或大于
请求URI的路径字段中的最后一个符号元素也是
在基本领域值指定的保护空间内
当前的挑战。客户端可以抢先发送
与中的资源请求对应的授权标头
在没有收到来自服务器的另一个质询的情况下共享该空间。(2基本认证方案)
客户端应该记住用户名、密码、nonce、nonce计数和
与身份验证会话关联的不透明值,用于
在该范围内的未来请求中构造授权标头
保护空间。(3.3摘要操作)
我是否需要在每个请求中发送授权标头,还是浏览器自动发送
浏览器将自动执行此操作
对于
Bearer
authentication(OAuth 2.0)中的Authorization
标题,我进行了搜索,但在你的第二个答案中没有找到任何类似的描述,你说facebook.com会将你发送到你的facebook主页,如果用户有令牌的话。但是令牌是通过授权头发送的,授权头需要通过javascript(header.set)设置。我的问题是,当用户从浏览器栏访问时,facebook.com是如何接收令牌的,提前谢谢!当你第一次访问www.facebook.com时,facebook会检查你的cookie中是否有令牌。然后,如果您拥有该令牌,他将呈现HomeTpl.html。如果您没有令牌,facebook将呈现LoginTpl.html。尝试登录facebook并删除您的Cookie。Facebook将注销你。你要问的问题可能是:当你键入url、www.facebook.com并按search时会发生什么?好的,这种行为对“cookies”是有效的,我完全同意。我想知道您将如何在没有cookie的情况下使用授权标头管理此操作?提前谢谢!(授权:承载令牌)您需要将该令牌存储在某个位置。看看这个。请检查此项。您使用的是哪种身份验证Digest
或Bear
?我猜这是由于@Veselin的回答中您的评论造成的。只是为了确定一下。目前我还没有实现任何东西,但我想实现Bear。另外,我想补充一点,我使用的是vanillaJS,没有用于Basic
和Digest
的框架,浏览器将自动发送授权
标题。请核对我的答案。不幸的是,对于Bearer
,我在相应的RFC中没有找到任何有趣的描述。我将对这些方面做更多的研究,仍然不清楚header如何能够“自动”从本地存储中获取数据。访问令牌的本地存储密钥也必须遵循一些预定义的方案吗?对于Basic
和Digest
,您不需要做任何事情。它与本地存储无关。“自动”行为是RFC规范所要求的。“浏览器将自动执行此操作。”显然不是真的。浏览器自动发送cookie,但不发送授权头。我们有一个网站,用户无法访问图像,因为浏览器不会自动发送auth头,我们必须在每个请求中手动设置它。