private User GetUser(string token) { Jwt jwt = JwtWorker.DecodeTokenString(token); User user = uow.Users.Get(jwt.Payload.User); if (user == null) { throw new UserNotFoundException(userNotFound); } if (!JwtWorker.IsValidSignature(jwt, user.Password)) { throw new InvalidTokenException(invalidToken); } return(user); }
public void LogInTest() { User user = CreateUser(); UserLogInDraft draft = new UserLogInDraft() { Login = user.Login, Password = user.Id.ToString() }; string oldToken = auth.LogIn(draft); string newToken = JwtWorker.GenerateTokenString(new Jwt(new Header(), new Payload() { User = user.Id }), user.Password); Assert.AreNotEqual(oldToken, newToken); }
public Object Login(string usuario, string contraseña) { try { if (usuario == "" || usuario == null || contraseña == null || contraseña == "") { throw new Exception("Por favor, ingrese todos los campos."); } using (ModelosDBContainer context = new ModelosDBContainer()) { UsuarioRepository repositorio = new UsuarioRepository(context); if (!repositorio.Any(usuario)) { throw new Exception("El usuario no existe."); } var entity = repositorio.Get(usuario); if (!repositorio.VerifyPassword(contraseña, entity.Password)) { throw new Exception("Credenciales incorrectas"); } var user = this._mapper.Map <UsuarioDTO>(entity); var token = JwtWorker.GenerateTokenJwt(user.Username); return(new { user, token }); } } catch (Exception e) { throw e; } }
public string LogIn(UserLogInDraft draft) { User user = uow.Users.GetByLogin(draft.Login); if (user == null) { throw new InvalidLoginException(invalidLogin); } string md5Password = Cryptographer.MD5Hash(draft.Password); if (!user.Password.Equals(md5Password)) { throw new InvalidPasswordException(invalidPassword); } return(JwtWorker.GenerateTokenString(new Jwt(new Header(), new Payload() { User = user.Id }), user.Password)); }