#angular
#угловатый
Вопрос:
Я пытаюсь отправить http-запрос get на angular.
как мне добавить apikey при авторизации, я могу это сделать только на Postman, так как вы просто вводите значения.
this.http
.get(url)
.pipe()
.subscribe((data: any) => {
console.log(data);
});
когда я отправляю этот запрос, он говорит, что неавторизованный, потому что отсутствует ключ api
Комментарии:
Ответ №1:
Можно добавить заголовки к запросу с помощью HttpHeaders
:
const headers = new HttpHeaders().set('Authorization', `Bearer ${token}`);
и вы можете передать их следующим образом:
this.http.get(url, { headers }) // ...
Комментарии:
1. Я бы пошел по угловому пути и использовал перехватчики: angular.io/guide/http#intercepting-requests-and-responses
Ответ №2:
Попробуйте использовать приведенный ниже код :
let header = new HttpHeaders().set(
"Authorization",
localStorage.getItem("token")
);
return this.http.get(url, {headers:header}).pipe()
.subscribe((data: any) => {
console.log(data);
});
Ответ №3:
- Сначала проверьте, возвращается ли ключ apiKey из серверной части при выполнении запроса аутентификации
- Если да, вам нужно сначала выполнить запрос авторизации в Angular (POST-ЗАПРОС): введите параметр входа, и вы получите токен / apiKey.
конструктор (частный http: HttpClient, частный маршрутизатор: Маршрутизатор) {} // в компоненте (сервер: ‘http://localhost:5000/api ) // в environment.ts
***login(user: { username: string, password: string }): Observable<boolean> {
return this.http.post<any>(`${environment.server}/auth`, user)
.pipe(
tap(tokens => this.doLoginUser(user.username, tokens)),
mapTo(true),
catchError(error => {
console.log(error.error);
return of(false);
}));
}***
- Используйте этот токен для получения конкретных данных из базы данных
общедоступный getUserInfos() { возвращает JSON.parse(localStorage.GetItem(this.USER_INFOS)); }
Я надеюсь, что смогу помочь