2015-12-03 72 views
0

我正在嘗試使用JWT身份驗證來設置一個帶有Hapi的簡單Angularjs應用程序。jwt授權令牌從響應標頭中丟失

我發送一封電子郵件給新註冊的用戶使用jwt token鏈接來驗證電子郵件是否存在。鏈接如下:

http://127.0.0.1:3000/verifyEmail/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyTmFtZSI6InJpY2tAaWNvZGU0dS5ubCIsInNjb3BlIjpbIkN1c3RvbWVyIl0sImZpcnN0TmFtZSI6IlJpY2siLCJsYXN0TmFtZSI6IkdvbW1lcnMiLCJpYXQiOjE0NDkxNDc5MzR9.6lWxcsSIC7DgAiGC0hcp7bdAhyl40Nbcqid3VgVtM6c

我這是怎麼生成的令牌:

handler: function(request, reply) { 
    request.payload.password = Common.encrypt(request.payload.password); 
    request.payload.scope = "Customer"; 
    User.saveUser(request.payload, function(err, user) { 
     if (!err) { 
      var tokenData = { 
       userName: user.userName, //email address 
       scope: [user.scope], 
       firstName: user.firstName, 
       lastName: user.lastName 
      }; 
      Common.sentMailVerificationLink(user,Jwt.sign(tokenData, privateKey)); 
      reply("Please confirm your email id by clicking on link in email"); 
     } else { 
      if (11000 === err.code || 11001 === err.code) { 
       reply(Boom.forbidden("please provide another user email")); 
      } else { 
       console.log(Boom.forbidden(err)); 
       reply(Boom.forbidden(err)); // HTTP 403 
      } 
     } 
    }); 
} 

現在,當我點擊驗證鏈接,響應報頭看起來是這樣的:

{ host: '127.0.0.1:3000', 
    connection: 'keep-alive', 
    accept: 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*; 
q=0.8', 
    'upgrade-insecure-requests': '1', 
    'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KH 
TML, like Gecko) Chrome/46.0.2490.86 Safari/537.36', 
    dnt: '1', 
    'accept-encoding': 'gzip, deflate, sdch', 
    'accept-language': 'nl-NL,nl;q=0.8,en-US;q=0.6,en;q=0.4,fr;q=0.2,es;q=0.2', 
    'x-cookiesok': 'I explicitly accept all cookies' } 

問題: 我錯過了響應的授權令牌他阿德。我怎樣才能發送頭中的授權令牌?

+0

令牌位於鏈接中,鏈接無法設置標題。我認爲你只需要從url中取回你的令牌。 – Sachacr

+0

Thx sachacr,我通過分割URL的令牌來工作:) – Forza

+0

好了:)如果我寫了一個答案,你會接受它嗎? – Sachacr

回答

1

您在URL中發送令牌,因此無法在標頭中返回。你必須從網址中取回。