Использование единой аутентификации Microsoft во внешнем интерфейсе с Angular и во внутреннем интерфейсе с Django REST API - PullRequest
0 голосов
/ 28 октября 2019

Я недавно создал работающее приложение Django, которое использует ресурсы из MS Graph, где пользователи проходят аутентификацию таким же образом, как и .

этого руководства. Затем мне потребовалось разделить интерфейс, используяAngular, и преобразовать мое приложение Django в среду REST. Мне удалось настроить аутентификацию веб-интерфейса в Angular , как описано здесь .

Мой вопрос: как я могу использовать токен, полученный в веб-интерфейсе, для аутентификации запросов приложения к моему Django REST API,для того, чтобы бэкэнд мог также использовать его для своих собственных запросов к MS Graph API?

Заранее спасибо, ребята.

Ответы [ 2 ]

0 голосов
/ 28 октября 2019

Ну, если вы сохранили токен доступа во внешнем интерфейсе во время входа в систему, то вы можете отправить токен доступа в заголовке запроса. В серверной части просто проверьте заголовок.

const httpOptions = {
  headers: new HttpHeaders({
    'Content-Type':  'application/json',
    'Authorization': 'access-token'
  })
};

this.http.get('http://www.example.com/api/endpoint', httpOptions).subscribe(res => {
},
err => {
});

Для справки: https://angular.io/guide/http

0 голосов
/ 28 октября 2019

Для части внешнего интерфейса вы должны передать { withCredentials: true }

this.http.get('http://www.example.com/api/auth', { withCredentials: true }).subscribe((resp: any) => {
  console.log(resp)
}

Я не знаком с Django, однако, в бэкэнде идея состоит в том, чтобы установить SupportCredential в true ии не предоставляя подстановочный знак * разрешенным источникам. Вы должны указать путь к вашему конкретному URL внешнего интерфейса

...