public string Auth(Usuario usuario) { string nomUser = usuario.NickName.ToLower().Trim(); var user = db.Usuario.Where(x => x.NickName.ToLower().Trim().Equals(nomUser) && x.Password.Equals(usuario.Password)) .Include(x => x.IdRolNavigation) .FirstOrDefault(); if (user == null) { return("NotAuthorized"); } string strToken = ValidateTokenExistence(user.IdUsuario); if (strToken != null) { return(strToken); } TokenUsuario token = new TokenUsuario { IdUsuario = user.IdUsuario, Token = Guid.NewGuid().ToString(), FechaGeneracion = DateTime.Now }; db.TokenUsuario.Add(token); db.SaveChanges(); return(token.Token); }
public async Task <Retorno> Logar(LoginDTO login) { try { var isLogado = await _signInManager.PasswordSignInAsync(login.Usuario, login.Senha, false, true); if (!isLogado.Succeeded) { return(new Retorno(false, "Não Logado", "Usuário ou Senha Invalido!")); } var user = await _userManager.FindByNameAsync(login.Usuario); var userToken = new TokenUsuario { Id = user.Id, Usuario = user.UserName, Email = user.Email, IdPerfil = user.IdPerfil, Administrador = (user.Administrador ?? false) }; var userLogado = new UsuarioLogadoDTO { UserToken = userToken }; var dadosToken = await _repository.GerarJwtAsync(userLogado); return(new Retorno(true, "Login Efetuado com Sucesso!", dadosToken)); } catch (Exception ex) { _log.GerarLogDisc("Erro ao Logar Usuario", ex: ex); throw new Exception("Erro ao Logar o Usuario", ex); } }