예제 #1
0
        public JsonResult Login([FromBody] PessoaLogin pessoaLogin)
        {
            Pessoa pessoa = new Pessoa();

            pessoa.Email = pessoaLogin.Email;
            pessoa.Senha = pessoaLogin.Senha;
            bool loginAutenticado = true;

            if (pessoa == null)
            {
                return(Json(null)); // Código 404
            }
            pessoa.IdPessoa = pessoaLogic.ValidarLogin(pessoa.Email, pessoa.Senha);
            if (pessoa.IdPessoa == 0)
            {
                loginAutenticado = false;
            }

            PessoaToken pessoaToken = new PessoaToken();

            pessoaToken.IdPessoa    = pessoa.IdPessoa;
            pessoaToken.Autenticado = loginAutenticado;

            if (loginAutenticado)
            {
                var claims = new [] {
                    new Claim(ClaimTypes.Name, pessoa.Email),
                };

                var key = new SymmetricSecurityKey(
                    Encoding.UTF8.GetBytes(SecurityKey)
                    );

                pessoaToken.Message = "Usuário autenticado";

                var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);

                var token = new JwtSecurityToken(
                    issuer: "sesi",
                    audience: "usuário",
                    claims: claims,
                    expires: DateTime.Now.AddYears(13),
                    signingCredentials: creds);

                pessoaToken.Token = new JwtSecurityTokenHandler().WriteToken(token);
                _pessoaRepositorio.AddPessoaToken(pessoaToken);

                return(Json(pessoaToken));
            }

            return(Json("Credenciais inválidas...")); // Código 200
        }
예제 #2
0
 public void GerarToken(PessoaToken pessoaToken, Pessoa pessoa)
 {
     if (pessoaToken.Autenticado)
     {
         pessoaToken.Message = "Usuário autenticado";
         pessoaToken.Token   = GetToken(pessoa.Email, pessoa.Senha);
         _pessoaRepositorio.AddPessoaToken(pessoaToken);
     }
     else
     {
         pessoaToken.Token = pessoaToken.Message = null;
     }
 }
예제 #3
0
    void GetPessoaToken(string jsonResult, int id, int id2)
    {
        print(jsonResult);

        try
        {
            PessoaToken pessoaToken = JsonUtility.FromJson <PessoaToken>(jsonResult);

            if (pessoaToken.autenticado)
            {
                print("Autenticado");
                GameManager.Instance.PessoaToken = pessoaToken;
                PlayerPrefs.SetString("token", pessoaToken.token);
                PlayerPrefs.SetInt("idtoken", pessoaToken.idPessoaToken);
                PlayerPrefs.Save();

                loadManager.loadScreen.SetActive(true);
                if (!PlayerPrefs.HasKey(GameConstants.NUM_DISCIPLINAS_PATH))
                {
                    Debug.LogWarning("Carregando tudo pela API");
                    loadManager.LoadStartInfo();
                }
                else
                {
                    Debug.LogWarning("Carregando tudo pelo dispositivo");
                    loadManager.LoadFromDevice();
                }
                menuDeslogado.SetActive(false);
                menuLogado.SetActive(true);
            }
            else
            {
                menuDeslogado.SetActive(true);
                menuLogado.SetActive(false);
                Debug.Log("Mostrar que email ou senha estão errados.");
            }
        }catch (ArgumentException e)
        {
            Debug.Log("Login inválido - " + e);
        }
    }
예제 #4
0
 public void AddPessoaToken(PessoaToken pessoaToken)
 {
     _contexto.PessoaToken.Add(pessoaToken);
     _contexto.SaveChanges();
 }