Angular2 http默认头文件通用授权令牌

时间:2016-04-13 06:38:59

标签: http header angular authorization token

在角度1中,我能够操纵http对象,因此帖子的请求标题包含如下身份验证:

$http.defaults.headers.common['Authorization'] = "Token " + sessionobject.token;

return $http({

    method: 'POST',
    url: SERVER_ENVIRONMENT + 'updatepath',
    headers: {
        'Content-Type': 'application/json',
        'Data-Type': 'json'
    },
    data: { 
        id : id,
        ...
    }
})

你能帮我找到Angular 2中产生相同帖子请求的等值词吗?很多thnx提前

2 个答案:

答案 0 :(得分:5)

扩展Angular2类BaseRequestOptions以为所有Http调用提供自定义标头

class MyOptions extends BaseRequestOptions {
 header:Headers=new Header({
'Authorization': 'Bearer ' + localStorage.getItem('token')
 });
}

然后可以将此类覆盖插入DI中,以便对于请求选项http选择MyOptions

bootstrap(App, [HTTP_PROVIDERS, provide(RequestOptions, {useClass: MyOptions})]);

这种方法的问题是令牌在引导期间应该可用,而大多数情况下并非如此。

另一种选择是创建自定义http服务。这里有一个这样的实现https://gist.github.com/chandermani/9166abe6e6608a31f471

答案 1 :(得分:1)

正如Chandermani在他的问题中所说,你可以指定你自己的请求选项。您可以通过重写merge方法静态或更动态地定义事物。使用后者,您可以根据当前请求提供的选项扩展请求选项。

有关详细信息,请查看此问题:

由于您使用令牌,因此一个重要特征是它们会在一段时间后过期。这意味着您需要根据刷新令牌刷新它们。这可以通过扩展Http类并利用像flatMap这样的可观察运算符在Angular2中透明地完成。

有关详细信息,请查看此问题: