【问题标题】:Surprisingly I'm getting same code for access_token and id_token令人惊讶的是,我得到了相同的 access_token 和 id_token 代码
【发布时间】:2019-01-14 14:05:56
【问题描述】:

我有 Angular 应用程序版本 6,我正在尝试集成 Azure AD 身份验证,并且微服务位于 AWS 中。

令人惊讶的是,我得到了相同的 access_token 和 id_token 代码。 他们应该是不同的吗?我的架构师这么认为,并要求我调整库以将 responseType 发送为“id_token+token”。

我做错了什么,有什么方法可以获得 access_token 以作为 api 调用的标头发送? 我还附上了api c的控制台错误截图 microsoftadal-api 失败 全部。

下面是我尝试读取访问令牌以验证 api 调用的一段代码。

enter code here
export class AppComponent {
loading: boolean;
constructor(private adalSvc: MsAdalAngular6Service, private router: Router,
private http: HttpClient) {
this.adalSvc.acquireToken('https://api.test.test.com/Dev')
.subscribe((resToken: string) => {
console.log(this.adalSvc.userInfo);
console.log('get resToken -->', resToken);
console.log('get oid -->', this.adalSvc.userInfo.profile.oid);
console.log('get accessToken -->', this.adalSvc.accessToken);
localStorage.setItem('accessToken', this.adalSvc.accessToken);
console.log('get token -->', this.adalSvc[enter image description here][1]
.getToken('https://api.test.test.com/test?userId=111111'));
this.configureRoutes();
this.loading = true;
this.http.get('https://api.test.test.com/test?userId=11111', {
headers: {
'Authorization': 'Bearer ' + this.adalSvc.accessToken,
'userid': this.adalSvc.userInfo.profile.oid,
'username': 'username',
'userrole': 'somerole'
}
}).subscribe(console.log);
this.postCall();
},
error => {
console.log(error);
});
}
postCall() {
const data = {
'dealerId': '111111'
};
const headers = new Headers();
headers.append('Authorization', 'Bearer ' + this.adalSvc.accessToken);
headers.append('userid', this.adalSvc.userInfo.profile.oid);
headers.append('username', 'username');
headers.append('userrole', 'somerole');
return this.http.post(
'https://api.test.test.com/test', data, {
headers: {
'Authorization': 'Bearer ' + this.adalSvc.accessToken,
'userid': this.adalSvc.userInfo.profile.oid,
'username': 'username',
'userrole': 'somerole'
}
}).subscribe((response: Response) => {
console.log(response.json());
});
}
configureRoutes() {
this.router.navigate(['/dealer/home']);
}
}

【问题讨论】:

    标签: jwt angular6 access-token adal microsoft-adal-angular6


    【解决方案1】:

    确保您指定了正确的资源。

    您需要发送到后端 API 的是 id_token 而不是 access_token。然后就可以从id_token中获取access_token了。

    看起来您可能犯了用户here 所犯的相同错误。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-29
      • 1970-01-01
      相关资源
      最近更新 更多