我刚从互联网上下载了一个Ionic
项目。该项目分为2个子项目:{Server (NodeJS)
/ Client (Ionic)
}
此项目使用基于JWT
(令牌)而不是会话的身份验证过程。
在Client (Ionic)
子项目中,我有以下代码片段:
...
createTodo(todo) {
return new Promise((resolve, reject) => {
let headers = new Headers();
headers.append('Content-Type', 'application/json');
headers.append('Authorization', this.authService.token);
this.http
.post(
'http://127.0.0.1:8080/api/todos',
JSON.stringify(todo),
{ headers: headers }
)
.map(res => res.json())
.subscribe(
res => {
resolve(res);
},
err => {
reject(err);
}
);
});
}
...
我的问题是,请求标头上的Authorization
字段如何工作?
为什么令牌不像todo
对象那样发送?
我查看了server
子项目,那里没有对Authorization
字段的引用,至少没有明确说明。
你能帮我清楚一下吗?
感谢。
答案 0 :(得分:0)
这不是特定于节点的。
嗯,授权通常在请求管道的开头执行。这意味着;在所有(很多)其他事情之前;授权需要先处理。
这通常是系统范围内定义的逻辑;因此,对于特定的终点来说,这不是一个典型的事情;为此,参数不适合,http-header进入的位置。
我不了解这个框架;但我的猜测是存在一些授权过滤器,它处理你的令牌。
标题通常用于系统范围的逻辑。例如但不限于:
有关常见标题的列表,请参阅:wikipedia
请注意,授权可由/在第三方服务器(如google / facebook等)处理。