Exemplo n.º 1
0
        public HttpResponseMessage GetAccessToken([FromBody] AuthenticationRequestDTO data)
        {
            var respMessage = new HttpResponseMessage();

            if (data == null)
            {
                return(BaseController.Security.GetMessageUnauthorizedLogin(respMessage));
            }
            if (data.sKey == null)
            {
                return(BaseController.Security.GetMessageUnauthorizedLogin(respMessage));
            }
            var sKey = string.Empty;
            var isUserNamePasswordValid = false;

            var loginRequest = new UserRequestDTO
            {
                nickName = data.userName.ToLower(),
                email    = data.email
            };

            if (data != null)
            {
                var messageError = string.Empty;
                if (_userBusiness.SelectUserByData(data.userName, data.email, data.sKey, out messageError))
                {
                    sKey = data.sKey;
                }
                else
                {
                    sKey = null;
                }
                if (!string.IsNullOrWhiteSpace(messageError))
                {
                    return(BaseController.Security.GetMessageInternalError(respMessage, messageError));
                }
                isUserNamePasswordValid = sKey == null ? false : true;
            }

            if (isUserNamePasswordValid)
            {
                var expires      = string.Empty;
                var sToken       = string.Empty;
                var proccessDate = DateTime.Now;
                var token        = BaseController.Security.CreteToken(loginRequest.nickName, sKey);
                if (string.IsNullOrWhiteSpace(token))
                {
                    return(BaseController.Security.GetMessageUnauthorizedLogin(respMessage));
                }

                BaseController.Security.GetMessageAuthorizedLogin(respMessage, BaseController.Security.SetCookieSession(loginRequest, token, Request, out expires, out sToken), sToken, proccessDate, data.email, data.nameSystem);

                if (!_authBusiness.InsertToken(new AuthenticationResponseDTO
                {
                    email = data.email,
                    expires = Convert.ToDateTime(expires),
                    nameSystem = data.nameSystem,
                    processDate = proccessDate,
                    token = token
                }))
                {
                    respMessage = BaseController.Security.MessageUnauthorized(Request);
                }
            }
            else
            {
                respMessage = BaseController.Security.MessageUnauthorized(Request);
            }

            return(respMessage);
        }