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

时间:2017-06-27 09:20:03

标签: node.js cookies jwt hapijs

我想使用JWT令牌对用户进行身份验证。在成功验证后,我正在创建一个jwt令牌。我有一些在互联网上的地方,我必须将此令牌发送到client.how我可以保存此令牌以及如何将此令牌发送到每个请求或令牌将自动附加到请求标头?如果没有那么我如何在请求标题中附加此标记?我正在使用带节点的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 个答案:

答案 0 :(得分:-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处理程序。 如果您需要任何帮助,请告诉我们。我很乐意提供帮助