Подтвердить что ты не робот

Angular2 cookie вместо localstorage

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

Я не мог найти никакой информации или примеров, как использовать файлы cookie в Angular2. Существует простой пример использования localStorage для сохранения токена, мне нужна такая же функциональность, но с кукисами.

Любая помощь будет отличной, поскольку в сети нет ничего.

this.http.post("http://localhost:3001/sessions/create", creds, { headers: header })
    .map(res => res.json())
    .subscribe(
      data => localStorage.setItem('id_token',data.id_token),
      err => this.logError(err),
      () => console.log("Auth is completed!")
    );
4b9b3361

Ответ 1

Простым способом решения этой проблемы является использование этого lib:

https://www.npmjs.com/package/ng2-cookies

Чтобы установить эту библиотеку, запустите:

$ npm install ng2-cookies

Использование:

import { Cookie } from 'ng2-cookies/ng2-cookies';

Cookie.set('cookieName', 'cookieValue');
Cookie.set('cookieName', 'cookieValue', 10 /*days from now*/);
Cookie.set('cookieName', 'cookieValue', 10, '/myapp/', 'mydomain.com');

let myCookie = Cookie.get('cookieName');

/*
* List of cookies as Object, like: { cookieName: "cookieValue", cookieName2: "cookieValue2" ... etc }
*/
let cookielist = Cookie.getAll();

Cookie.delete('cookieName');
Cookie.deleteAll();

Ответ 2

Я реализовал службу cookie с функциями от Angular 1 до Angular 2 в качестве инъекционной службы. Также добавлена ​​функция removeAll в качестве плюса. Вы можете получить его с помощью:

npm install angular2-cookie --save

После ввода его в качестве службы вы можете использовать методы, как в Angular 1:

this._cookieService.get(key);
this._cookieService.getObject(key);
// Other available methods are
// put(), putObject(), remove() and removeAll()

Вы можете проверить часть readme для примеров и доступных функций.

https://github.com/salemdar/angular2-cookie