#angular #single-sign-on #openid-connect #single-logout #angular-auth-oidc-client
#angular #единый вход #OpenID-подключение #одиночный выход из системы #angular-auth-oidc-client
Вопрос:
Я не смог добиться единого выхода из системы со всех клиентов в angular. Код, который я использовал, приведен ниже. Функция выхода вызывается из приложения angular и выходит из текущего приложения, но это не выход из всех клиентов (других приложений angualr, использующих тот же сервер идентификации)
Пожалуйста, помогите мне добиться выхода из системы со всех клиентов. Заранее спасибо
Конфигурация IdentityServer4 клиента
new Client
{
//testing logout
ClientId = "clientangularSLO",
ClientName = "Angular Client",
AllowedGrantTypes = GrantTypes.Code,
RequireClientSecret = false,
AllowedScopes = new List<string>
{
IdentityServerConstants.StandardScopes.OpenId,
IdentityServerConstants.StandardScopes.Profile,
"api1",
"roles"
},
RedirectUris = new List<string> {"http://localhost:4300"},
PostLogoutRedirectUris = new List<string> {"http://localhost:4300"},
AllowedCorsOrigins = new List<string> {"http://localhost:4300" },
RequireConsent= false,
RequirePkce = true,
AllowAccessTokensViaBrowser = true,
AllowOfflineAccess = true
}
Конфигурация Angular OIDC
oidcConfigService.withConfig({
stsServer: 'https://localhost:4001',
redirectUrl: window.location.origin,
clientId: 'clientangularSLO',
scope: 'openid profile',
responseType: 'code',
triggerAuthorizationResultEvent: true,
postLogoutRedirectUri: `${window.location.origin}/unauthorized`,
logLevel: LogLevel.Debug,
historyCleanupOff: true,
});
Код выхода из системы Angular
import { OidcSecurityService } from 'angular-auth-oidc-client';
constructor(private oidcSecurityService: OidcSecurityService, private router: Router, private route: ActivatedRoute){}
logout() {
this.oidcSecurityService.logoff();
}
Комментарии:
1. вы нашли какое-либо решение?