离子 - 请求标题上的授权字段 - 这是如何工作的?

时间:2018-03-19 18:11:31

标签: node.js angular http ionic-framework ionic3

我刚从互联网上下载了一个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字段的引用,至少没有明确说明。

你能帮我清楚一下吗?

感谢。

1 个答案:

答案 0 :(得分:0)

这不是特定于节点的。

嗯,授权通常在请求管道的开头执行。这意味着;在所有(很多)其他事情之前;授权需要先处理。

这通常是系统范围内定义的逻辑;因此,对于特定的终点来说,这不是一个典型的事情;为此,参数不适合,http-header进入的位置。

我不了解这个框架;但我的猜测是存在一些授权过滤器,它处理你的令牌。

标题通常用于系统范围的逻辑。例如但不限于:

  • 授权
  • 验证
  • 请求类型
  • 内容类型
  • CORS
  • 接受编码
  • 接受压缩
  • ..。欢迎,只需查看维基百科

有关常见标题的列表,请参阅:wikipedia

请注意,授权可由/在第三方服务器(如google / facebook等)处理。