2017-01-16 105 views
1

我已經在節點js中使用jwt創建了一個令牌。但我很困惑如何將它存儲在客戶端並將其發送回服務器。我想將每個請求的頭部中的令牌發送到服務器。如何在nodejs中設置客戶端的令牌?

如何在客戶端的本地存儲中添加令牌?我還沒有找到適當的方法。我是否必須將響應頭中的令牌發送出去,並將其存儲在客戶端的本地存儲中?或者是否有任何方式存儲在客戶端本地storage.Below是我用來生成令牌和標題發送它的代碼。

var token = jwt.encode({ 
      iss: row[0].user_id, 
      exp: expires 
     }, 'jwtTokenSecret'); 
res.header('token', token); 

謝謝!

+1

您應該聯繫客戶端js的server api。你可以使用一些框架,比如AngularJS。有了角度,你可以在網上找到很多模塊來做到這一點。 –

回答

1

您必須在登錄後返回令牌。爲了將其保存在客戶端,您沒有太多選擇;您可以使用cookies,本地/會話存儲或Web SQL數據庫。

我個人推薦使用sessionStorage(因爲它的波動性),我還會在服務器端的令牌上添加一個驗證期(如果用戶在一定的時間內不執行任何操作,刪除令牌,用戶可能會斷開連接),請記住,存儲在客戶端的任何人都可以看到該令牌。

另外,如果您將以這種方式使用您的API,請考慮使用API​​代理並https

+2

請記住,如果您使用cookie來保證它們安全,而且只有當連接是SSL時才使用http –

+1

如何在本地存儲中使用!我的意思是在代碼中。如何需要傳遞令牌?像響應變量或響應頭?那我該如何在客戶端存取它來存儲它!如果您有任何代碼示例,請提供 – VisheshRaju

+0

沒有任何代碼示例,但您如何與您的服務器進行通信?您是使用Ajax與API進行通信還是?如果您使用的是Ajax,則只需處理響應回調中的所有內容,並設置sessionStorage變量應該是直接的 「sessionStorage.setItem('key','value');」 [https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage](https://developer.mozilla.org/en-US/docs/Web/API/Window/sessionStorage ) –

相關問題