Angular2 cookie而不是localstorage

时间:2015-11-03 09:33:51

标签: javascript html5 cookies angular

我设法使所有工作JWT认证,没有问题,但它只支持现代浏览器,我需要Auth从IE9及以上开始全部工作。

我找不到任何关于如何在Angular2中使用Cookie的信息或示例。有一个使用localStorage来保存令牌的简单示例,我需要相同的功能,但需要使用cookie。

任何帮助都会很棒,因为网上没有任何内容。

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!")
    );

3 个答案:

答案 0 :(得分:30)

解决此问题的一种简单方法是使用此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();

答案 1 :(得分:4)

我使用Angular 1中的函数将Cookie服务实现为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()

您可以查看自述文件部分以获取示例和可用功能。

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

答案 2 :(得分:1)

在角度优先npm命令npm install angular2-cookie --save中使用Cookie,
app.module.ts添加

中注入您的服务后
import { CookieService } from 'angular2-cookie/services/cookies.service';

或在提供商中添加服务

 providers: [CookieService]
将cookie添加到您使用的组件后

饼干有7种方法 1。)get():- This method returns the value of given cookie key.
2)getObject() :- This method is returns the desterilized value of given cookie key
3)get all():- This method returns a key-value object with all the cookies.
4)put():- This method is used to set a value for given cookie key.
5。)putObject():- This method is used to serializes and set a value for given cookie key.
6)remove(): -This method is used to remove given cookie
7)remove all(): -This method is used to remove all cookies.

表示Cookie中的put / set值:this._cookieService.put('key:string', 'value:string');此处键为您的Cookie名称ex:user1,值为set any value

获取cookie中的值:this._cookieService.get('key');

用于从组件中删除Cookie,然后this._cookieService.remove('key');