在角度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提前
答案 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中透明地完成。
有关详细信息,请查看此问题: