2015-11-03 52 views
13

我設法使所有工作JWT授權,沒有問題,但它只支持現代瀏覽器,我需要從IE9開始,所有工作都從IE9開始。Angular2餅乾代替本地存儲

我找不到任何信息或示例如何在Angular2中使用cookie。有一個簡單的例子使用localStorage來保存令牌,我需要相同的功能,但使用cookies來完成。

任何幫助將是偉大的,因爲網上沒有任何東西。

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

回答

23

一個簡單的方法來解決,這是使用此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

雖然這在理論上可以回答的問題,[這將是優選的](// meta.stackoverflow.com/q/8259 )在這裏包括答案的基本部分,並提供參考鏈接。 –

4

我執行將角色1到角色2的功能作爲可注射的服務授予cookie服務。此外還添加了removeAll函數。

npm install angular2-cookie --save 

注入它作爲一個服務後,您可以使用這些方法在角1:你可以把它

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

您可以檢查例子和可用功能自述部分。

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

0

對於角首輪npm命令npm install angular2-cookie --save使用的cookie,
注入在app.module.ts服務後添加

import { CookieService } from 'angular2-cookie/services/cookies.service'; 

或供應商添加服務,

providers: [CookieService] 

向你的c添加一個cookie後您使用的組件 有7種方法用於Cookie
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值:this._cookieService.put('key:string', 'value:string');這裏的關鍵是你的cookie名稱例如:user1和值是集any value

用於在cookie GET值:this._cookieService.get('key');

用於從組分中除去的cookie然後this._cookieService.remove('key');