Базовая аутентификация HTTP не работает в браузере Safari с использованием node.js? - PullRequest
0 голосов
/ 14 января 2019

В настоящее время я использую node.js для разработки. Я использовал следующий формат для базовой аутентификации http:

https://{username}:{password}@{host}

В настоящее время этот шаблон работает в Google Chrome и Mozilla Firefox, но не работает в браузере Safari. Но я также читал на некоторых форумах, что Google также не одобрит этот метод для базовой аутентификации. Итак, проблема в том, что мы не можем сказать пользователям, чтобы они отключили свои параметры безопасности в любом браузере, поэтому в этом случае, как я следую точному шаблону или какому-либо другому для базовой аутентификации http для других веб-URL, которые не связаны с нашим приложением, но это созданный нашей командой также для других приложений.

На самом деле, когда мы посещаем защищенные веб-сайты, мы получим всплывающее окно с запросом имени пользователя и пароля, как показано на приведенной ниже ссылке на скриншот. Но я хочу, чтобы аутентификация проходила без отображения всплывающего окна с использованием какого-либо кода. Пожалуйста, помогите над этим.

Если вы не можете понять формулировку проблемы, просьба привести меня к исправлению спецификации вопроса.

Я прикрепил свой сценарий проблемы на скриншоте, полученный в браузере Safari. Базовая аутентификация в Safari

Мне нужно правильное решение, которое будет возможным и безопасным для всех браузеров. Заранее спасибо.

1 Ответ

0 голосов
/ 16 января 2019

Вы также можете просто использовать 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...