如何在客户端上保存 JWT 令牌,在节点中使用 Hapi js。?

Posted

技术标签:

【中文标题】如何在客户端上保存 JWT 令牌,在节点中使用 Hapi js。?【英文标题】:how to save JWT token on client, using Hapi js in node.? 【发布时间】:2017-11-30 06:52:21 【问题描述】:

我想使用 JWT 令牌对用户进行身份验证。成功验证后,我正在创建一个 jwt 令牌。我在互联网上有一些地方我必须将此令牌发送给客户端。如何保存此令牌以及如何将此令牌发送到每个请求或令牌将自动附加到请求标头?如果没有,那么我如何在请求标头中附加此令牌?我正在使用带节点的 Hapi js。

下面是我的代码:

var validateUser = function(request, reply) 
  var email = request.payload.email;
  var userPassword = request.payload.password;

  // get user form database
  var user = users[email];

  // check if exists
  if(!user)
    var errMsg = 'User not found';
    reply.view('login',errMsg:errMsg);
  
  else 
    // validate the user
    bcrypt.compare(userPassword, user.password, function(err, isValid) 

      if(!isValid)
          var errMsg = 'Wrong username or password!';
          reply.view('login',errMsg:errMsg);
      
      else 
        // if user is found and password is right
        // create a token
        var token = jwt.sign(user.id, process.env.SECRET_KEY); 
// I want to send this token to client, and also want to save this token in header of every request.

        reply.redirect('/myNotes');
      
    );
  

【问题讨论】:

【参考方案1】:

1)在本地存储中的登录存储令牌之后(客户端) 2) 使用 http 拦截器将令牌添加到请求标头。 您是否使用 jquery 来调用端点,那么 $ajax setUp 是正确的地方。您可以从这篇文章https://www.bennadel.com/blog/2131-using-jquery-ajaxsetup-to-accumulate-global-data-parameters-for-ajax-requests.htm 获取更多详细信息。 如果您直接从 Hapi js 使用服务,则使用 onpreAuth 处理程序。 如果您需要任何帮助,请告诉我。我很乐意提供帮助

【讨论】:

以上是关于如何在客户端上保存 JWT 令牌,在节点中使用 Hapi js。?的主要内容,如果未能解决你的问题,请参考以下文章

在客户端存储 JWT 令牌的位置以及如何保护它? [复制]

在哪里存储访问令牌以及如何跟踪用户(在 Http only cookie 中使用 JWT 令牌)

如何在 ReactJS 上使用 JWT 令牌注销

如何在前端和后端存储 JWT 刷新令牌?

如何在节点中使用 x.509 证书验证 JWT 令牌?

如何在 vue 中存储、管理 REST API JWT 身份验证令牌?