angular 5 получить куки с доменом - PullRequest
0 голосов
/ 04 ноября 2018

(ионный 3)

Я делаю аутентификацию на странице для доступа к некоторым файлам js.

Для доступа к файлам, которые мне нужны для входа, после входа в систему я могу получить доступ к библиотекам, которые загружаются после запроса:

192.168.0.102:8080/web/backend

с угловой я делаю запрос.

this.http.post ("/ auth", params, {headers: headers, withCredentials: true});

запрос выполнен успешно, но библиотеки недоступны, я получаю сообщение об ошибке "404 not found"

Это потому, что когда я делаю запрос ajax, у меня есть прокси с angular, чтобы иметь возможность сделать запрос

{
   "path": "/auth"
   "proxyUrl": "192.168.0.102:8080/web/authenticate"
}

Запрос возвращает cookie, и здесь возникает проблема, cookie возвращается с доменом "localhost", и при попытке загрузить файлы я не могу выполнить следующие тесты.

1- Войдите в систему с помощью firefox, а затем обновите угловой сервер, чтобы увидеть, загружаются ли они: Страница может загружать файлы, потому что у меня есть cookie с доменом "192.168.0.102".

2 - удаляя куки и возвращаясь для входа в систему с помощью angular, я устанавливаю расширение firefox с именем cookieManager и редактирую куки, чтобы URL не был localhost: Изменяя URL файла cookie (Домен), я могу загрузить файлы js.

Где проблема? Что мне нужно изменить домен файла cookie, который я восстановил с хоста, и поместить домен сервера, чтобы использовать этот файл cookie.

1 Ответ

0 голосов
/ 05 ноября 2018

Работа с Cookies никогда не работала для меня, когда я использую this.http.post(...). Вместо этого используйте XMLHttpRequest:

let data = {
        email: this.loginField,
        password: this.passwordField
      }

  var xhr = new XMLHttpRequest();
  xhr.open("POST","http://localhost:8080/login", true);
  xhr.withCredentials = true;

  var change = () => {
    if(xhr.readyState == XMLHttpRequest.DONE) {

      //Return 401 Error code in your Backend (JSON Format)
      if (xhr.status != 401) {

        //User is allowed to log in
        this.navCtrl.setRoot(HomePage);
        localStorage.setItem("user", xhr.responseText);

      } else {
        //User isnt allowed to log in -> Error Handling
        console.log("Wrong Email or password");
        this.incorrectInupt();
      }
    }
  }

  xhr.onreadystatechange = change;

  xhr.setRequestHeader("Access-Control-Allow-Origin","http://localhost:8100");
  xhr.setRequestHeader("Access-Control-Allow-Credentials", "true");
  xhr.setRequestHeader("Content-Type", "application/json");

  xhr.send(JSON.stringify(data));

Теперь cookie установлен в Ionic-Client.

Примечание: Если ваш Ionic-сервер также работает на localhost: 8100, вы можете просто скопировать и вставить заголовки запроса. В противном случае измените ссылку в заголовке запроса на ваш адрес Ionic-Server.

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