因此,我尝试使用 JSON Web 令牌进行身份验证,并且正在努力弄清楚如何将它们附加到标头并根据请求发送它们。
我试图使用https://github.com/auth0/angular2-jwt但我无法让它与 Angular 一起使用并放弃了,我想我可以弄清楚如何在每个请求中发送 JWT 或发送它在标题中(最好是标题)。只是比我想象的要难一点。
这是我的登录
submitLogin(username, password){
console.log(username);
console.log(password);
let body = {username, password};
this._loginService.authenticate(body).subscribe(
response => {
console.log(response);
localStorage.setItem('jwt', response);
this.router.navigate(['UserList']);
}
);
}
和我的 login.service
authenticate(form_body){
return this.http.post('/login', JSON.stringify(form_body), {headers: headers})
.map((response => response.json()));
}
我知道这些并不是真正需要的,但也许会有所帮助!创建此令牌并存储它后,我想做两件事,将其发送到标头中并提取我输入的到期日期。
一些 Node.js 登录代码
var jwt = require('jsonwebtoken');
function createToken(user) {
return jwt.sign(user, "SUPER-SECRET", { expiresIn: 60*5 });
}
现在我只是想通过一个角度服务将它传递回这个服务的节点。
getUsers(jwt){
headers.append('Authorization', jwt);
return this.http.get('/api/users/', {headers: headers})
.map((response => response.json().data));
}
JWT 是我在本地存储中的 webtoken,我通过我的组件传递给服务。
我在任何地方都没有收到错误,但是当它到达我的节点服务器时,我从来没有在标题中收到它。
'content-type': 'application/json',
accept: '*/*',
referer: 'http://localhost:3000/',
'accept-encoding': 'gzip, deflate, sdch',
'accept-language': 'en-US,en;q=0.8',
cookie: 'connect.sid=s%3Alh2I8i7DIugrasdfatcPEEybzK8ZJla92IUvt.aTUQ9U17MBLLfZlEET9E1gXySRQYvjOE157DZuAC15I',
'if-none-match': 'W/"38b-jS9aafagadfasdhnN17vamSnTYDT6TvQ"' }