3
respostas

Acesso pela API pública

Estou com a mesma dúvida que outro aluno. Também queria saber se na API do herokuapp nós temos acesso pelo end point "/usuarios"? Estou tentando pelas seguintes Url's e estou recebendo um 403: https://instalura-api.herokuapp.com/api/usuarios https://instalura-api.herokuapp.com/usuarios

Aparece o seguinte no console: {timestamp: 1557180334297, status: 403, error: "Forbidden", message: "Access Denied", path: "/usuarios"} error: "Forbidden" message: "Access Denied" path: "/usuarios" status: 403 timestamp: 1557180334297

A parte de enviar os dados no meu código está assim:

enviaDados(event){

        event.preventDefault();
        this.limpaErros();
        this.adicionaMensagem();
        console.log(this.state);


        const requestInfo = {
            method: 'POST',
            body: JSON.stringify({login: this.state.login.value, senha: this.state.senha.value, urlPerfil: this.state.urlPerfil.value}),
            headers: new Headers({
                'Content-type': 'application/json'
            })
        };

        fetch('https://instalura-api.herokuapp.com/usuarios', requestInfo)
            .then(response => response.json())
            .then(data => {
                console.log(data);
            })
            .catch(err => console.log(err));
    }

Também tentei dessa forma. Praticamente finalizado, mas com o erro 403.

enviaDados(event){

        event.preventDefault();
        this.limpaErros();
        this.adicionaMensagem();
        console.log(this.state);


        const requestInfo = {
            method: 'POST',
            body: JSON.stringify({login: this.state.login.value, senha: this.state.senha.value, urlPerfil: this.state.urlPerfil.value}),
            headers: new Headers({
                'Content-type': 'application/json'
            })
        };

        fetch('https://instalura-api.herokuapp.com/usuarios', requestInfo)
            .then(response => {

                if(response.ok){

                    browserHistory.push("/timeline");
                } else{

                    throw new Error("Não foi possível realizar o signup");
                }
            })
            .then(data => {
                console.log(data);
            })
            .catch(err => this.setState({msgerro1:err.message}));
    }
3 respostas

Boa noite, Hugo! Como vai?

Nessa requisição vc precisa enviar o token de autenticação para a API, de acordo com o que está descrito na tarefa. Contudo, parece que no seu código vc não está fazendo isso. Dá uma conferida nessa parte!

Pegou a ideia? Qualquer coisa é só falar!

Grande abraço e bons estudos, meu aluno!

To com dúvida nessa parte.

To travado assim:

enviaDados(event){

        event.preventDefault();
        this.limpaErros();
        this.adicionaMensagem();


        const requestInfo = {
            method: 'POST',
            body: JSON.stringify({
                login: this.state.login, 
                senha: this.state.senha, 
                urlPerfil: this.state.urlPerfil
            }),
            headers: new Headers({

                "Content-type":"application/json",
                "X-AUTH-TOKEN":""
            })
        };

        fetch(`https://instalura-api.herokuapp.com/usuarios`, requestInfo)

            .then(response => {

                if(response.ok){

                    browserHistory.push("/");
                } else{

                    throw new Error("Não foi possível realizar o signup");
                }
            })
            .catch(err => this.setState({msgerro1:err.message}));
    }

Dessa forma ainda estou com o erro.

Como sigo? Onde devo mexer?

Opa, Hugo! Como vai?

Antes de mais nada, perdão por demorar pra retornar! Mas vamos ao seu caso!

Primeiro de tudo: o problema persiste? Em caso positivo, vc poderia compartilhar o seu código no github e compartilhar aqui para que eu possa dar uma olhada e tentar te ajudar?

Caso já tenha resolvido, vc poderia contar aqui qual era o problema em si e como fez pra resolver? As vezes no futuro alguém pode passar pelo mesmo problema e poderá encontrar na sua resposta uma ajuda!