3
respostas

Auth-token vasio, aguem sabe se ha problema na aip?

import React, { Component } from 'react';
import {browserHistory} from 'react-router';

export default class Login extends Component {

    constructor(props){
        super(props);
        //console.log(this.props);
        this.state = {msg: this.props.location.query.msg};
    }

    envia(event){
        event.preventDefault();

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

                'Content-type' : 'application/json'
            })
        };

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

                if(response.ok){
                    return response.text();
                } else {
                   // this.setState({msg: 'nao foi possivel fazer o login'});
                    throw new Error('Nao foi possivel acessar');
                }
            })
            .then(token => {
               //console.log(token);
               //console.log('teste');
               localStorage.setItem('auth-token', token);
               console.log(localStorage);
               browserHistory.push('/timeline');
            })
            .catch(error => {
                this.setState({msg:error.message});
               // browserHistory.push('/timeline');
            })
    }

    render(){

        return(
            <div className="login-box">
                <h1 className="header-logo">Instalura</h1>
                <span>{this.state.msg}</span>
                <form onSubmit={this.envia.bind(this)}>
                    <input type="text" ref={(input)=> this.login = input} />
                    <input type="password" ref={(input)=> this.senha = input}/>
                    <input type="submit" value="login"/>
                </form>
            </div>

        );


    }

}

Retorna

[object Storage]: {auth-token: "", authToken: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwibmFtZSI6ImZsYXZpbyIsImVtYWlsIjoiZmxhdmlvQGFsdXJhcGljLmNvbS5iciIsImlhdCI6MTU1OTIxNzkzMSwiZXhwIjoxNTU5MzA0MzMxfQ.UES-bHdm2hVvqt1wzv9GvmHAMyvd7mG2MyXb0B0YYnI", length: 2} auth-token: "" authToken: "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwibmFtZSI6ImZsYXZpbyIsImVtYWlsIjoiZmxhdmlvQGFsdXJhcGljLmNvbS5iciIsImlhdCI6MTU1OTIxNzkzMSwiZXhwIjoxNTU5MzA0MzMxfQ.UES-bHdm2hVvqt1wzv9GvmHAMyvd7mG2MyXb0B0YYnI" length: 2

proto: StoragePrototype

3 respostas

Alessandro, boa tarde!

Me parece não estar vazio, o que você pode tentar é dar um console.log(token). E verificar o retorno dele, me parece que ele esta certo, mas ao invés de usar o auth-token no setItem tente usar authToken

Espero ter ajudado e bons estudos!

Boa tarde, Acredito que o auth-token:"", que retorna uma string vazia deveria retornar o nome do usuário, ou um nome. Quando troquei para authToken no setState deu o seguinte erro:

HTTP500: ERRO DO SERVIDOR - o servidor encontrou uma condição inesperada que impediu o atendimento da solicitação.
(Fetch)POST - https://instalura-api.herokuapp.com/api/fotos/3/like?X-AUTH-TOKEN=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwibmFtZSI6ImZsYXZpbyIsImVtYWlsIjoiZmxhdmlvQGFsdXJhcGljLmNvbS5iciIsImlhdCI6MTU1OTIxNzkzMSwiZXhwIjoxNTU5MzA0MzMxfQ.UES-bHdm2hVvqt1wzv9GvmHAMyvd7mG2MyXb0B0YYnI

Já com o auth-token o erro é o seguinte:

HTTP500: ERRO DO SERVIDOR - o servidor encontrou uma condição inesperada que impediu o atendimento da solicitação.
(Fetch)POST - https://instalura-api.herokuapp.com/api/fotos/3/like?X-AUTH-TOKEN=

Me parece que o resto do codigo bate com o do exercicio.... entâo não sei bem como corrigir...

Alessandro, boa tarde!

Você está usando qual login? Eu verifiquei a resposta do token e ele retorna um usuário que não está sendo listado dentro dos possíveis:

https://imgur.com/a/tsewb9u

Para que eu possa compreender melhor o que está ocorrrendo poderia compartilhar seu projeto via github? Eu testo e te dou um feedback detalhado sobre o que ocorre e como solucionar!

Espero ter ajudado e aguardo sua resposta!