У меня есть приложение angular (angular 6), в котором реализована проверка подлинности keycloakAuthentication, если пользователь не прошел проверку подлинности, приложение angular перенаправляет пользователя на эту страницу службы (третья сторона), когда пользователь успешно прошел проверку подлинности, он перенаправит на наш веб-сайт angular.
Теперь я столкнулся с проблемой с протоколом http, если тип пользователя http://portal.cloud.com будет перенаправлен на страницу аутентификации keycloak, но URL-адрес перенаправления (http://portal.cloud.com) недействителен, потому что он аутентифицирует только URL-адрес https, как я могу изменить URL-адрес в этом случае означает, что приложение типа пользователя http://portal.cloud.com будет автоматически преобразовать его в https://portal.cloud.com и отправить на страницу keycloakAuthentication. Я попробовал какое-то решение, например, реализованное authguard, как показано ниже:
import {Injectable, isDevMode} from '@angular/core';
import {CanActivate} from '@angular/router';
@Injectable()
export class IsSecureGuard implements CanActivate {
canActivate(): boolean {
if ((isDevMode()) && (location.protocol !== 'https:')) {
location.href = 'https:' + window.location.href.substring(window.location.protocol.length);
return false;
}
return true;
}
}
но он не работает должным образом, пожалуйста, предложите какое-то решение для изменения URL-адреса при загрузке.





Вы можете упростить реализацию, разрешив перенаправление на HTTPS до того, как пользователь достигнет вашего приложения, настроив NGINX для этого, например:
Смотрите здесь, как: https://serverfault.com/questions/67316/in-nginx-how-can-i-rewrite-all-http-requests-to-https- while-mainpting-sub-dom