public LogOutResultDto Logout(ExternalLogOutDataDto externalLogoutData) { var result = new LogOutResultDto(); if (externalLogoutData.LogoutToken == null) { return(result); } var loginProvider = Enum.Parse <ExternalLoginProvider>(externalLogoutData.LoginProvider); string logoutUri; switch (loginProvider) { case ExternalLoginProvider.Facebook: { logoutUri = CreateFacebookLogoutUri(externalLogoutData.LogoutToken); break; } case ExternalLoginProvider.OpenId: { logoutUri = CreateLogoutUri(externalLogoutData); break; } case ExternalLoginProvider.Google: { logoutUri = _googleOptions.LogOutEndpoint; break; } default: { return(result); } } result.ExternallyLoggedOut = true; result.LogOutUri = logoutUri; return(result); }
private string CreateLogoutUri(ExternalLogOutDataDto externalLogoutData) { return ($"{_openIdOptions.LogOutEndpoint}?id_token_hint={externalLogoutData.LogoutToken}&post_logout_redirect_uri={_openIdOptions.ClientLoginEndpoint}&client_id={_openIdOptions.ClientId}"); }