Authhttp в angular 6 (переход с angular2 на angular6)

Недавно я перенес свое приложение с Угловой2 на Угловой6

Моя сборка не удалась из-за Angular2-JWT, поэтому я обновил ее до @ auth0 / угловой-jwt

Теперь я застрял при обновлении кода, поскольку AuthHTTP и AuthConfig устарели.

У меня есть factory.ts для моего security.module.ts. И мне нужно вернуть новый AuthHttp на свой security.module.ts.

export function AuthHttpServiceFactory( http: Http, options: RequestOptions) {
  const accessToken = this.accessTokenService.getAccessToken();
  const userInfoToken = this.accessTokenService.getUserInfoToken();
  return new AuthHttp(
    new AuthConfig({
      tokenName: 'token',
      tokenGetter: (() => accessToken),
      globalHeaders: [{ 'Content-Type': 'application/json' }, { 'userinfotoken': userInfoToken }],
    }), http, options);
}

Теперь я получаю ошибку при возврате AuthHttp.

Мой Security.Module.ts выглядит следующим образом.

@NgModule({
  providers: [
    LocalStorageService,
    {
      provide: AuthHttp,
      useFactory: AuthHttpServiceFactory,
      deps: [Http, RequestOptions]
    }
  ]
})

Я также получаю сообщение об ошибке Provide: AuthHttp.

Любая помощь приветствуется.

Имхо, AuthHttp оказался совершенно бесполезным сервисом. Я использовал его давно и перешел на использование Angular HttpClient, где я сам устанавливал заголовки (это почти все, что вам нужно сделать). На одну зависимость меньше, а код более понятный.

Enn 26.10.2018 08:04

Оцените ваш ответ. Но я не могу понять, как использовать HttpClient вместо AuthHttp. Не могли бы вы показать мне, как это сделать?

Joseph Vinodh 26.10.2018 08:10

HttpClient - это встроенный модуль / служба Angular для выполнения HTTP-запросов. Вполне вероятно, что какая-то версия AuthHttp также использует это. Попробуйте поискать здесь angular.io/guide/http Если вам нужно добавить заголовки аутентификации глобально, вы также можете создать свою собственную службу, использовать в ней HttpClient, добавить заголовки и использовать это в своем приложении. Вы бы в основном создали свой собственный AuthHttp.

Enn 26.10.2018 08:14

Импортируйте «Http, RequestOptions и заголовки из @ angular / http и добавьте параметры запроса в ответ. Авторизация заголовка должна содержать токен. Let headers = new Headers (); let token = localStorage.getItem ('token'); headers.append (' Авторизация »,« Носитель »+ токен) let options = new RequestOptions ({headers: headers});

Maludasek 24.11.2018 08:37
3
4
1 793
1

Ответы 1

вот как добавить аутентификацию с использованием HttpClient и HttpHeaders в качестве службы

import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';


@Injectable({
providedIn: 'root'
})
export class VehicleService {

headers;
private readonly vehicleEndpoint = 'api/vehicles';


constructor(private http: HttpClient) {

}


create(vehicle) {
    return this.http.post(this.vehicleEndpoint, vehicle, this.addHeaders());
}

addHeaders() {
    var access_token = localStorage.getItem('access_token');
    return { headers: new HttpHeaders().set("Authorization", `Bearer   
${access_token}`) };
}

access_token - это веб-токен Json.

https://angular.io/api/common/http/HttpHeaders

https://angular.io/guide/http

Другие вопросы по теме