# La API "User Log out" devuelve éxito en la respuesta pero la sesión del usuario sigue activa

**URL:** <https://meta.discourse.org/t/user-log-out-api-return-success-in-response-but-user-session-still-alive/91468>\
**Category:** SSO\
**Created:** [3 Julio, 2018 11:50 UTC](https://meta.discourse.org/t/user-log-out-api-return-success-in-response-but-user-session-still-alive/91468 "2018-07-03T11:50:04Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![kalpantkrishna\_patil](https://avatars.discourse-cdn.com/v4/letter/k/ce7236/32.png) [@kalpantkrishna\_patil](https://meta.discourse.org/u/kalpantkrishna_patil)\
**Post date:** [5 Julio, 2018 12:40 UTC](https://meta.discourse.org/t/user-log-out-api-return-success-in-response-but-user-session-still-alive/91468/5 "2018-07-05T12:40:53Z")

</div>

```
==============API call==============    
    public void LogoutDiscourse()
        {
            string apiKey = ConfigurationManager.AppSettings["discourse_api_key"];
            string apiUsername = ConfigurationManager.AppSettings["discourse_api_username"];
            string url = "https://xxxxxxx.trydiscourse.com/admin/users/" + userId + "/log_out?api_key=" + apiKey + "&api_username=" + apiUsername;
            string response = CalloutDiscourseApi(url);

        }

        public string CalloutDiscourseApi(string apiUrl)
        {
            //HttpWebResponse response = null;
            StreamReader respStream = null;

            // Create a request object using the url passed in 
            var request = (HttpWebRequest)WebRequest.Create(apiUrl);
            request.Method = "POST";
            request.Timeout = 10000;

          
            //Set the content type of the data being posted.
            request.ContentType = "multipart/form-data";

            using (var response = (HttpWebResponse)request.GetResponse())
            {
                // Create a streamreader object from the response 
                respStream = new StreamReader(response.GetResponseStream(), Encoding.UTF8);

                // Get the contents of the page as a string and return it 
                return respStream.ReadToEnd();
            }

        }

===========SSO - Group passing==========

////Skipping few initial line of code here

 string userGroups = "CustomGroup";

            var result = userRegistration.GetUserSpecificDetails(actualCriteria);
            objUserProfileDetails = (List<UserProfileEditModel>)(serialization.DeSerializeBinary(Convert.ToString(result)));
            var UserProfileDetails = objUserProfileDetails.FirstOrDefault();
			
            string returnPayload = "nonce=" + Server.UrlEncode(nonce) +
                                     "&email=" + Server.UrlEncode(UserProfileDetails.Email) +
                                     "&external_id=" + Server.UrlEncode(UserProfileDetails.ID.ToString()) +
                                     "&username=" + Server.UrlEncode(UserProfileDetails.Email) +
                                     "&name=" + Server.UrlEncode(UserProfileDetails.Name) +
                                     "&add_groups=" + Server.UrlEncode(userGroups);

            string encodedPayload = Convert.ToBase64String(Encoding.UTF8.GetBytes(returnPayload));
            string returnSig = getHash(encodedPayload, ssoSecret);

            string redirectUrl = ConfigurationManager.AppSettings["DiscourseUrl"] + "/session/sso_login?sso=" + encodedPayload + "&sig=" + returnSig;

            return Redirect(redirectUrl);

```

---

_[View the full topic](https://meta.discourse.org/t/user-log-out-api-return-success-in-response-but-user-session-still-alive/91468)._
