示例#1
0
        public HttpResponseMessage CheckItLogout([FromBody] string jwt)
        {
            var response = new HttpResponseMessage();

            if (jwt == null)
            {
                response.Content    = new StringContent("JWT is null.");
                response.StatusCode = HttpStatusCode.Conflict;
                return(response);
            }
            using (var db = new DataBaseContext())
            {
                try
                {
                    LogoutManager logoutManager = new LogoutManager(db);
                    logoutManager.CheckItLogout(jwt);
                    response.StatusCode = HttpStatusCode.OK;
                    return(response);
                }catch (Exception e)
                {
                    response.Content    = new StringContent(e.Message);
                    response.StatusCode = HttpStatusCode.Conflict;
                    return(response);
                }
            }
        }
示例#2
0
        public HttpResponseMessage SSOLogout([FromBody] SSORequestDTO request)
        {
            var response = new HttpResponseMessage();

            if (!ModelState.IsValid || request == null)
            {
                response.Content    = new StringContent("Invalid request payload.");
                response.StatusCode = HttpStatusCode.Unauthorized;
                return(response);
            }


            Guid ssoID;

            //check id is correct format
            try
            {
                ssoID = Guid.Parse(request.ssoUserId);
            }
            catch (Exception)
            {
                response.Content    = new StringContent("Invalid Guid format");
                response.StatusCode = HttpStatusCode.Conflict;
                return(response);
            }

            using (var db = new DataBaseContext())
            {
                try
                {
                    //Logout user from any instances
                    LogoutManager logoutManager = new LogoutManager(db);
                    logoutManager.SSOLogout(ssoID, request.email, request.timeStamp, request.signature);

                    //make response
                    response.StatusCode = HttpStatusCode.OK;
                    return(response);
                }
                catch (InvalidRequestSignature e)
                {
                    //TODO: log
                    response.Content    = new StringContent(e.Message);
                    response.StatusCode = HttpStatusCode.Unauthorized;
                    return(response);
                }
                catch (UserDoesNotExistException e)
                {
                    //TODO: log
                    response.Content    = new StringContent(e.Message);
                    response.StatusCode = HttpStatusCode.Conflict;
                    return(response);
                }
            }
        }