2017-01-16 106 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 ) –

相关问题