Я создаю угловое 7 приложение. В этом приложении я использую социальный логин Facebook. При использовании этого я получил ошибку консоли, говоря, что мой запрос должен быть https: // запросы. Поэтому я подумал об использовании перехватчика для преобразования http в https.
Я создал перехватчик для изменения моего http-запроса на https-запрос и сделал следующие изменения кода.
http.interceptor.ts:
import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpHandler, HttpRequest, HttpEvent,HttpResponse } from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable()
export class httpsInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
console.log(req.url);
const secureReq = req.clone({
url: req.url.replace('http://', 'https://')
});
return next.handle(secureReq);
}
}
app.module.ts:
import { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
import { httpsInterceptor } from './interceptor/https.interceptor';
providers: [
{ provide: HTTP_INTERCEPTORS, useClass: httpsInterceptor, multi: true }
],
После внесения вышеуказанных изменений, когда я запускаю свое приложение как "ng serve", я могу получить доступ к приложению через http://localhost:4200,, но оно не указывает на "https://localhost:4200", а также я не видел консольный журнал из класса перехватчиков.
И когда я запускаю свое приложение как "ng serve --ssl true", я могу получить доступ к приложению через https://localhost:4200, но при наборе http://localhost:4200.
ничего не появляется
Ожидаемый результат:
Когда я запускаю «ng serve» и открываю http://localhost:4200,, он должен перенаправить на https://localhost:4200
Когда я запускаю «ng serve --ssl true», я получаю доступ к приложению через http://localhost:4200.
Пожалуйста, дайте мне знать, что я делаю неправильно, или мне нужно сделать еще несколько изменений кода? Спасибо.