HTTP基本身份验证在使用node.js的Safari浏览器中无法正常工作?

时间:2019-01-14 06:18:40

标签: node.js http express safari basic-authentication

我目前正在使用node.js进行开发。我已使用以下格式进行http基本身份验证:

https:// {用户名}:{密码} @ {主机}

当前,以上模式在谷歌浏览器和Firefox浏览器中也有效,但在Safari浏览器中不起作用。但是,我还在一些论坛上读到,谷歌也将弃用此方法进行基本身份验证。因此,问题在于我们无法告诉用户在任何浏览器中都放开其安全选项,因此在这种情况下,我如何遵循确切的模式或其他与我们的应用程序无关的其他Web网址的http基本身份验证由我们的团队还为其他应用创建的。

实际上,当我们访问受保护的网站时,它将弹出弹出窗口询问用户名和密码,如下面所附的屏幕快照链接所示。但我希望通过身份验证,而不使用任何类型的代码显示弹出窗口。请对此提供帮助。

如果您无法理解问题说明,请引导我更正有关问题的说明。

我将我的问题情景附在了我在野生动物园浏览器中收到的屏幕快照中。Basic Auth on Safari

我需要适用于所有浏览器的可行且安全的适当解决方案。预先感谢。

1 个答案:

答案 0 :(得分:0)

您还可以仅使用fetch进行其他api上的身份验证。

app.get("/sample", (req, res) => {
  console.log("enter into sample api");

  const username = "sample_uname",
    password = "sample_password";
    fetch('https://example.com/?username='+username+'&password='+password)
    .then(response=> {
        return response.json();
    })
    .then(json => {
        //Do what you want
        console.log(JSON.stringify(json));
    });
});

编辑:通过GET进行身份验证不是最安全的方法,因为密码会在URL中闪烁。所以也许您应该使用POST