1
resposta

[Dúvida] Qual a seria a maneira correta de usar o session[] em um arequisição?

Python:

 data = request.get_json()
    user = data.get("user")
    password = data.get("password")

    # Compara as credenciais
    if user == valid_user["username"] and password == valid_user["password"]:
        session['usuario_logado'] = user
        return jsonify({"result": "OK", "message": f"Bem-Vindo, {session['usuario_logado']}"}), 200

React:

try {
    const response = await fetch('http://127.0.0.1:8000/login', {
        method: 'POST',
        headers: {
            'Content-type': 'application/json',
        },
        body: JSON.stringify(formData),
    });

    const data = await response.json(); // Lê o corpo da resposta como JSON
    console.log(`response: ${response}\n
        response.json: ${response.json()}\n
        data.result: ${data.result}\n`)

    if (response.ok) {
        if (data.result === 'OK') {
            navigate('/login/register');
            window.alert(data.message);
        }
1 resposta

Olá Pedro! Tudo certo?

A ideia é que, ao autenticar um usuário com sucesso, você armazene o nome de usuário na sessão para poder ser utilizado em outras partes da aplicação.

No seu código, você está utilizando session['usuario_logado'] = user para armazenar o nome de usuário na sessão quando as credenciais são válidas. Isso está correto. Aqui estão algumas dicas para garantir que tudo funcione conforme esperado:

  1. Certifique-se de que a chave secreta está configurada: Como mencionado no contexto, é importante ter uma app.secret_key configurada para que as sessões funcionem corretamente. Isso é necessário para a segurança dos dados armazenados nos cookies.

    app = Flask(__name__)
    app.secret_key = 'sua_chave_secreta'
    
  2. Verifique se a sessão está sendo utilizada corretamente: Quando você armazena o usuário na sessão, certifique-se de que a aplicação está configurada para ler essa informação em outras partes do código onde ela é necessária.

  3. Mensagens de feedback: Você está retornando uma mensagem de boas-vindas com jsonify({"result": "OK", "message": f"Bem-Vindo, {session['usuario_logado']}"}). Isso é ótimo para fornecer feedback imediato ao usuário. Certifique-se de que o cliente (no caso, a aplicação React) está configurado para exibir essa mensagem corretamente.

  4. Testes e depuração: Se algo não estiver funcionando como esperado, tente adicionar alguns print() ou console.log() para verificar se os dados estão sendo passados corretamente entre o servidor Flask e o cliente React.

  5. Verifique o fluxo de navegação: Após o login bem-sucedido, você está redirecionando o usuário para uma nova página com navigate('/login/register');. Certifique-se de que essa rota está configurada corretamente e que o usuário está sendo redirecionado para o lugar certo.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.