Как заставить передний канал работать в C# + IdentityServer4 + Angular?C#

Место общения программистов C#
Anonymous
 Как заставить передний канал работать в C# + IdentityServer4 + Angular?

Сообщение Anonymous »

Мне нужна помощь в создании работы переднего канала в моем приложении, которое использует C# + IdentityServer4 + Angular.
My Client Configuration в IdentityServer4: < /p>
new Client
{
AccessTokenType = AccessTokenType.Jwt,
RefreshTokenExpiration = TokenExpiration.Absolute,
IdentityTokenLifetime = identityTokenLifetime,
AuthorizationCodeLifetime = authorizationCodeLifetime ,
AccessTokenLifetime = accessTokenLifetime ,
UpdateAccessTokenClaimsOnRefresh = true,
AllowOfflineAccess = true,
ClientId = MySiteClients.Portal,
ClientName = "Portal client",
ClientSecrets =
{
new Secret(MySiteSecrets.Portal.Sha256())
},
AllowedGrantTypes = GrantTypes.Implicit,
AllowAccessTokensViaBrowser = true,
AlwaysIncludeUserClaimsInIdToken = true,
AbsoluteRefreshTokenLifetime = coreSettings.AbsoluteRefreshTokenLifetimeInSeconds,
RequireConsent = false,
RequirePkce = false,
RedirectUris =
{
$"https://localhost:4200/auth-callback",
$"https://localhost:4200/silent-refresh.html",
},
PostLogoutRedirectUris =
{
$"https://localhost:4200/logout-callback",
$"http://localhost:4200/logout-callback",
coreSettings.MySiteIdentityServer
},
BackChannelLogoutUri = $"{coreSettings.MySiteIdentityServer}/api/logout-backchannel",
BackChannelLogoutSessionRequired = true,
FrontChannelLogoutUri = $"https://localhost:4200/frontchannel-logout",
FrontChannelLogoutSessionRequired = true,
AllowedCorsOrigins =
{
coreSettings.PortalApiService,
coreSettings.Portal
},
AllowedScopes =
{
StandardScopes.OpenId,
StandardScopes.Profile,
MySiteScopes.PortalApi
}
}
< /code>
Угловой компонент для обработки входа в передний канал: < /p>
@Component({
selector: 'app-frontchannel-logout',
templateUrl: './frontchannel-logout.component.html'
})
export class FrontChannelLogoutComponent implements OnInit {
constructor(private router: Router,
private authService: AuthService,
private activatedRoute: ActivatedRoute) { }

ngOnInit() {
debugger;
this.activatedRoute.queryParams.subscribe(params => {
if (params['frontchannel-logout']) {
this.authService.logout();
}
});
}
}
< /code>
Проблема: < /strong>
Даже в журналах IdentityServer4, я не вижу никакого запроса на передний канал.
Back Logout канала работает нормально, но он не полностью решаю мою проблему. Браузер. Другие браузеры по -прежнему сохраняют сеанс, потому что они хранят токен в файлах cookie, которые остаются действительными в течение 30 минут. Сессия в других браузерах истекает только тогда, когда токен больше не является действительным, и не может обновляться из -за отзывания с помощью входа в задний канал. Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/794 ... r4-angular

Вернуться в «C#»