Ejemplo n.º 1
0
        public async Task <IActionResult> Login([FromBody] AuthenticationRequestDTO authenticationRequest)
        {
            _log.Information($"Token requested for {authenticationRequest.UserName}");

            var user = await _userManager.FindByEmailAsync(authenticationRequest.UserName);

            if (user != null)
            {
                bool checkPassword = await _userManager.CheckPasswordAsync(user, authenticationRequest.Password);

                if (checkPassword)
                {
                    var claims = new[]
                    {
                        new Claim(JwtRegisteredClaimNames.Sub, user.UserName),
                        new Claim(JwtRegisteredClaimNames.Jti, user.Id.ToString()),
                        new Claim(ClaimTypes.Name, user.UserName),
                        new Claim(ClaimTypes.Email, user.Email)
                    };

                    var key         = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["Jwt:Key"]));
                    var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

                    var token = new JwtSecurityToken(_configuration["Jwt:Issuer"],
                                                     _configuration["Jwt:Issuer"],
                                                     claims,
                                                     expires: DateTime.Now.AddMinutes(30),
                                                     signingCredentials: credentials);

                    return(Ok(new { token = new JwtSecurityTokenHandler().WriteToken(token) }));
                }
            }

            return(BadRequest("Could not create token"));
        }
Ejemplo n.º 2
0
 public static UserRequestDTO SetDataParameters(AuthenticationRequestDTO data, string token = null, string expires = null)
 {
     return(new UserRequestDTO
     {
         nickName = data.userName,
         email = data.email
     });
 }
        public override void OnAuthorization(HttpActionContext actionContext)
        {
            if (actionContext.Request.Headers.Authorization == null || actionContext.Request.Headers.Authorization.Scheme != TaxiOnlineIdentity.AuthenticationTypeName || string.IsNullOrEmpty(actionContext.Request.Headers.Authorization.Parameter))
            {
                //HandleUnauthorizedRequest(actionContext);
                return;
            }
            AuthenticationRequestDTO request = JsonConvert.DeserializeObject <AuthenticationRequestDTO>(actionContext.Request.Headers.Authorization.Parameter);

            System.Threading.Thread.CurrentPrincipal = new TaxiOnlineUser(request);
        }
Ejemplo n.º 4
0
        public HttpResponseMessage GelLoginUser([FromBody] AuthenticationRequestDTO data)
        {
            var token       = string.Empty;
            var respMessage = new HttpResponseMessage();

            if (data == null)
            {
                return(BaseController.Security.GetMessageNotCreateUser(respMessage, "Dados inválidos"));
            }
            BaseController.Security.GetMessageCreateUser(respMessage, _userBusiness.SelectUserLogin(data));

            return(respMessage);
        }
Ejemplo n.º 5
0
        public HttpResponseMessage GetPartnerMail(string token, [FromBody] AuthenticationRequestDTO data)
        {
            var respMessage = new HttpResponseMessage();

            if (data == null)
            {
                return(BaseController.Security.GetMessageNotCreateUser(respMessage, "Dados inválidos"));
            }
            if (string.IsNullOrWhiteSpace(token))
            {
                return(BaseController.Security.GetMessageNotCreateUser(respMessage, "Unauthorized"));
            }

            BaseController.Security.GetMessageCreateUser(respMessage, _userBusiness.SelectUserByData(data.nameSystem, token, data.sKey));

            return(respMessage);
        }
Ejemplo n.º 6
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);
        }
Ejemplo n.º 7
0
 public TaxiOnlineIdentity(AuthenticationRequestDTO request)
 {
     _name = request.Id;
 }
Ejemplo n.º 8
0
        public AuthenticationResponseDTO SelectUserLogin(AuthenticationRequestDTO data)
        {
            var resultGuid = _userRepository.SelectUserByEmail(new UserRequestDTO {
                email = data.email
            });

            if (resultGuid != null)
            {
                var resultUser = _userRepository.SelectUserByEmailPass(new UserRequestDTO
                {
                    email  = data.email,
                    codeIn = data.codeIn
                });
                if (resultUser != null && resultUser.Count() > 0)
                {
                    if (resultGuid.FirstOrDefault().guid == resultUser.FirstOrDefault().guid)
                    {
                        var resultoken = _securityResponse.ValidateToken(new AuthenticationRequestDTO
                        {
                            email      = resultUser.FirstOrDefault().email,
                            nameSystem = data.nameSystem
                        });

                        if (resultoken != null && resultoken.Count() > 0)
                        {
                            if (EncodeDecode.CrashOut(resultUser.FirstOrDefault().password) == EncodeDecode.CrashOut(data.codeIn))
                            {
                                if (resultoken.FirstOrDefault().nameSystem == data.nameSystem)
                                {
                                    _responseAuth.email      = data.email;
                                    _responseAuth.nameSystem = resultoken.FirstOrDefault().nameSystem;
                                    _responseAuth.guid       = resultUser.FirstOrDefault().guid;
                                    _responseAuth.hasAccess  = true;
                                    _responseAuth.token      = resultoken.FirstOrDefault().token;
                                    _responseAuth.userName   = resultUser.FirstOrDefault().userName;
                                    _responseAuth.statusCode = System.Net.HttpStatusCode.OK;
                                    _responseAuth.message    = "Usuário validado com sucesso!";
                                }
                                else
                                {
                                    _responseAuth.email      = string.Empty;
                                    _responseAuth.hasAccess  = false;
                                    _responseAuth.statusCode = System.Net.HttpStatusCode.Unauthorized;
                                    _responseAuth.message    = "Usuário não encontrado!";
                                    return(_responseAuth);
                                }
                            }
                            else
                            {
                                _responseAuth.email      = string.Empty;
                                _responseAuth.hasAccess  = false;
                                _responseAuth.statusCode = System.Net.HttpStatusCode.Unauthorized;
                                _responseAuth.message    = "Usuário não encontrado!";
                                return(_responseAuth);
                            }
                        }
                        else
                        {
                            _responseAuth.email      = string.Empty;
                            _responseAuth.hasAccess  = false;
                            _responseAuth.statusCode = System.Net.HttpStatusCode.Unauthorized;
                            _responseAuth.message    = "Usuário não encontrado!";
                            return(_responseAuth);
                        }
                    }
                    else
                    {
                        _responseAuth.email      = string.Empty;
                        _responseAuth.hasAccess  = false;
                        _responseAuth.statusCode = System.Net.HttpStatusCode.Unauthorized;
                        _responseAuth.message    = "Usuário não encontrado!";
                        return(_responseAuth);
                    }
                }
                else
                {
                    _responseAuth.email      = string.Empty;
                    _responseAuth.hasAccess  = false;
                    _responseAuth.statusCode = System.Net.HttpStatusCode.Unauthorized;
                    _responseAuth.message    = "Usuário não encontrado!";
                    return(_responseAuth);
                }
            }

            return(_responseAuth);
        }
Ejemplo n.º 9
0
 public TaxiOnlineUser(AuthenticationRequestDTO request)
 {
     _identity = new TaxiOnlineIdentity(request);
 }