【发布时间】:2020-12-03 20:17:51
【问题描述】:
我创建了一个调用第三方端点的服务。 我已经使用他们的身份验证端点生成了一个承载令牌,我需要将其与其他 api 调用一起使用。
由于这是一个第 3 方 API,我正在调用我的目标网址,并且标头是在代理上构建的。
既然我已经生成了 access_token,我该如何将此字符串添加到授权标头中?
组件
showOAuth() {
this.zebraService.getOAuth()
.subscribe((data: any) => {
console.log('Zebra Response: ', data);
console.log(data.body);
this.OAuth = data.body;
this.access_token = this.OAuth.access_token;
console.log(this.access_token);
});
}
代理
"/zebraAccessApi": {
"target": "https://api.com",
"secure": true,
"changeOrigin": true,
"pathRewrite": {
"^/zebraAccessApi": ""
},
"headers": {
"client_id": "",
"client_secret": ""
}
},
"/zebraSetAppLed": {
"target": "https://api.com/setAppLed",
"secure": true,
"changeOrigin": true,
"pathRewrite": {
"^/zebraSetAppLed": ""
},
"headers": {
"Content-Type": "application/json",
"Authorization": ""
}
}
服务
zebraOAuthUrl = '/zebraAccessApi';
zebraSetAppLedUrl = '/zebraSetAppLed';
public getOAuth() {
let options = {
observe: 'response' as 'body',
response: 'json'
};
return this.http.get(this.zebraOAuthUrl, options);
}
【问题讨论】:
-
Angular 提供了一种使用 HttpInterceptor 拦截每个 api 请求的好方法,angular.io/api/common/http/HttpInterceptor
标签: angular typescript proxy