Executando verificação de segurança...
1
sluki
2 min de leitura ·

[DUVIDA] Não estou recebendo meu JWT na response.

Possuo uma aplicação springboot simples com spring security, implementei para que ao usuario efetuar um login e senha eu mando o jwt pelo body(tenho quase 100% de certeza que isso não é uma boa pratica, oo correto acredito que seria mandar pelo header, mas como disse, estou aprendendo).

a questão é que eu consigo por exemplo no postman eu mando o login e senha e ele responde no body a chave jwt pra mim normalmente. porem no meu frontele me da oo seguinte console.log:

Response { type: "cors", url: "http://localhost:8080/api/v1/user/login", redirected: false, status: 200, ok: true, statusText: "", headers: Headers(4), body: ReadableStream, bodyUsed: false }
​
body: ReadableStream { locked: false }
​​
locked: false
​​
<prototype>: ReadableStreamPrototype { cancel: cancel(), getReader: getReader(), pipeThrough: pipeThrough(), … }
​
bodyUsed: false
​
headers: Headers(4) { "cache-control" → "no-cache, no-store, max-age=0, must-revalidate", "content-type" → "application/json", expires → "0", … }
​​
<entries>
​​​
"cache-control": "no-cache, no-store, max-age=0, must-revalidate"
​​​
"content-type": "application/json"
​​​
expires: "0"
​​​
pragma: "no-cache"
​​
<prototype>: HeadersPrototype { append: append(), delete: delete(), get: get(), … }
​
ok: true
​
redirected: false
​
status: 200
​
statusText: ""
​
type: "cors"
​
url: "http://localhost:8080/api/v1/user/login"
​
<prototype>: ResponsePrototype { clone: clone(), arrayBuffer: arrayBuffer(), blob: blob(), … }

ja procurei dentroo de todas essa propriedades do tipo <prototype> e tambem nao encontrei nada :/


EDIT: Inserção do meu codigo no front


document.getElementById("login-form").addEventListener("submit", function(event) {
    event.preventDefault();
    
    const username = document.getElementById("username").value;
    const password = document.getElementById("password").value;

    const loginDto = { username, password };

    fetch("http://localhost:8080/api/v1/user/login", {
        method: "POST",
        headers: {
            "Content-Type": "application/json",
        },
        body: JSON.stringify(loginDto)
    })
    .then(response => {
        if (response.ok) {
            alert(response.body.value); // Redirecionar para a página de perfil após o login
            console.log(response)
        } else {
            document.getElementById("error-message").textContent = "Credenciais inválidas";
        }
    })
    .catch(error => {
        console.error("Erro no login:", error);
    });
});

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Index</title>
</head>
<body>
    <form id="login-form">
        <label for="username">Nome de Usuario:</label>
        <input type="text" name="username" id="username" placeholder="Digite seu nome de usuario">
        
        <label for="password">Senha:</label>
        <input type="password" name="password" id="password" placeholder="Digite sua senha">

        <button type="submit">Login</button>
    </form>

    <p id="error-message" style="color: red;"></p>

    <script src="login.js"></script>
</body>
</html>
Carregando publicação patrocinada...
1

Seria bom você postar o código do front para que se possa avaliar melhor o que está acontecendo (como é feita a requisição, como chega a resposta e como ela é tratada, etc). Da forma como está o texto fica muito difícil entender o caminho que você tomou pra chegar a essa conclusão.

0
1

Eai dev! Você colocou seus codigo de front, ap as aparentemente nada fora do normal, mas pelo pela sua queixa o erro bem provável que não estaja nesses trecho do código, dá uma olhada no spring boot, como ele estar responsável pela resposta para o usuario acredito que esteja nele o error.

Obs: não tenho intimidade com spring boot por isso a resposta rasa.

1

opa, obrigado pela resposta de qualquer jeito amigo, eu pensei que pudesse ser erro no spring boot, mas se fosse o caso ele tambem não responderia no postman certo? porque no postman a resposta chega normalmente :/