Пример #1
0
        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);
        }
Пример #2
0
 private string CreateLogoutUri(ExternalLogOutDataDto externalLogoutData)
 {
     return
         ($"{_openIdOptions.LogOutEndpoint}?id_token_hint={externalLogoutData.LogoutToken}&post_logout_redirect_uri={_openIdOptions.ClientLoginEndpoint}&client_id={_openIdOptions.ClientId}");
 }