Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 授权头行为的澄清_Javascript_Html_Css_Http_Https - Fatal编程技术网

Javascript 授权头行为的澄清

Javascript 授权头行为的澄清,javascript,html,css,http,https,Javascript,Html,Css,Http,Https,我正在为一个实践网站编写认证机制。我已经设法创建了一个安全令牌,但我希望在登录后的每个后续请求中都发送该令牌,以便对其进行授权 理想情况下,我希望将其设置为授权标头,但我认为如果用户通过浏览器栏访问URL,则不会设置标头 如何让客户端在每次访问我的域时记住发送授权头 此外,我理想情况下不希望将令牌作为cookie发送 TL;医生: 我对授权标头行为有几个问题: 我是否需要在每个请求中发送授权标头,还是浏览器会自动发送 如果它不是自动的,那么来自浏览器栏中用户输入的GET请求将永远不会被验证,因为

我正在为一个实践网站编写认证机制。我已经设法创建了一个安全令牌,但我希望在登录后的每个后续请求中都发送该令牌,以便对其进行授权

理想情况下,我希望将其设置为授权标头,但我认为如果用户通过浏览器栏访问URL,则不会设置标头

如何让客户端在每次访问我的域时记住发送授权头

此外,我理想情况下不希望将令牌作为cookie发送

TL;医生: 我对授权标头行为有几个问题:

  • 我是否需要在每个请求中发送授权标头,还是浏览器会自动发送

  • 如果它不是自动的,那么来自浏览器栏中用户输入的GET请求将永远不会被验证,因为不会有任何JavaScript附加标题,如果不使用cookies,您将如何解决此问题?(页面重定向?)

  • 如果我需要在每个请求中发送授权标头,那么最好的解决方案是什么

  • PS


    我使用的javascript没有任何框架。

    我将尝试回答您的问题

  • 在每个请求上,如果要对用户进行身份验证,则需要发送授权标头。您可以在此处找到有关授权标头的更多信息

  • 我不明白这个问题。例如,如果您在浏览器栏中输入www.facebook.com,您将进入facebook主页。如果用户没有令牌,则显示登录页面,或重定向到www.facebook.com/login。如果用户有令牌,请转到主页并在标题中发送令牌。Facebook将令牌存储在cookie中,例如,您可以将其存储在区域设置存储中

  • 最好的方法是什么?成功登录后,API将向我提供令牌,并将其保存到本地存储。然后在每次请求时,我都发送令牌。若令牌在数据库中是相同的,那个么我就得到了数据。若令牌和数据库中的令牌不同,我将重定向到登录页面

  • 我希望这能回答您的问题。

    对于
    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的情况下使用授权标头管理此操作?提前谢谢!(授权:承载令牌)您需要将该令牌存储在某个位置。看看这个。请检查此项。您使用的是哪种身份验证Basic、
    Digest
    Bear
    ?我猜这是由于@Veselin的回答中您的评论造成的。只是为了确定一下。目前我还没有实现任何东西,但我想实现Bear。另外,我想补充一点,我使用的是vanillaJS,没有用于
    Basic
    Digest
    的框架,浏览器将自动发送
    授权
    标题。请核对我的答案。不幸的是,对于
    Bearer
    ,我在相应的RFC中没有找到任何有趣的描述。我将对这些方面做更多的研究,仍然不清楚header如何能够“自动”从本地存储中获取数据。访问令牌的本地存储密钥也必须遵循一些预定义的方案吗?对于
    Basic
    Digest
    ,您不需要做任何事情。它与本地存储无关。“自动”行为是RFC规范所要求的。“浏览器将自动执行此操作。”显然不是真的。浏览器自动发送cookie,但不发送授权头。我们有一个网站,用户无法访问图像,因为浏览器不会自动发送auth头,我们必须在每个请求中手动设置它。