public DadosUsuario PostAutenticar(String emailFacebook, String token, [FromServices] ConfiguracaoAutorizacao configuracaoAutorizacao) { if (emailFacebook == "*****@*****.**" && !String.IsNullOrEmpty(token) && token == "EVENTOWEB-0192") { return(new DadosUsuario() { Login = emailFacebook, Nome = emailFacebook, TokenApi = GerarTokenApi(configuracaoAutorizacao, emailFacebook) }); } else { throw new ExcecaoAPI("Autenticacao", "Token incorreto ou usuário não existe."); } /*Usuario usuario = null; * if ((usuario = mAppUsuario.BuscarPeloLogin(emailFacebook)) != null && * !String.IsNullOrEmpty(token) && token == "EVENTOWEB-0192") * { * return new DadosUsuario() * { * Login = emailFacebook, * Nome = emailFacebook, * TokenApi = GerarTokenApi(configuracaoAutorizacao, usuario.Login) * }; * } * else * throw new ExcecaoAPI("Autenticacao", "Token incorreto ou usuário não existe.");*/ }
private string GerarTokenApi(ConfiguracaoAutorizacao configuracaoAutorizacao, string login) { ClaimsIdentity identidade = new ClaimsIdentity( new GenericIdentity(login, "Login"), new[] { new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString("N")), new Claim(JwtRegisteredClaimNames.UniqueName, login) } ); DateTime dataCriacao = DateTime.Now; DateTime dataExpiracao = dataCriacao + TimeSpan.FromSeconds(configuracaoAutorizacao.TempoSegExpirar); var handler = new JwtSecurityTokenHandler(); var securityToken = handler.CreateToken(new SecurityTokenDescriptor { Issuer = configuracaoAutorizacao.Emissor, Audience = configuracaoAutorizacao.Publico, SigningCredentials = configuracaoAutorizacao.CredenciasAssinatura, Subject = identidade, NotBefore = dataCriacao, Expires = dataExpiracao }); return(handler.WriteToken(securityToken)); }
public DadosUsuario PostAutenticar([FromBody] String token, [FromServices] ConfiguracaoAutorizacao configuracaoAutorizacao) { var usuario = ConsultarEmailUsuarioFacebook(token); if (usuario != null && mAppUsuario.BuscarPeloLogin(usuario.Login) != null) { usuario.TokenApi = GerarTokenApi(configuracaoAutorizacao, usuario.Login); return(usuario); } else { throw new ExcecaoAPI("Autenticacao", "Token incorreto ou usuário não existe."); } }