Удивительно, но я получаю одинаковый код для access_token и id_token - PullRequest
0 голосов
/ 14 января 2019

У меня угловое приложение версии 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']);
}
}

1 Ответ

0 голосов
/ 14 января 2019

Убедитесь, что вы указали правильный ресурс.

Это id_token, а не access_token, который вам нужно отправить в бэкэнд-API. Затем вы можете получить access_token из id_token.

Похоже, вы допустили ту же ошибку, что и пользователь здесь .

...