Javascript和Spring通信,如何在重定向上包含授权标头?

问题描述 投票:0回答:1

我正在使用 SpringBoot 项目进行一些练习,其中包括 JWT 过滤器。 现在过滤器正在从授权标头中提取令牌,一切都正常工作,用 Postman 进行了测试。 问题是我试图制作一个网页,使用 Thymeleaf 在服务器端呈现,但我不知道如何将令牌保留在我的请求中。 现在我正在测试一个登录页面,端点接收凭据并返回适当的响应,包括主体内的 JWT,我的 Javascript 代码(嵌入在 html 中)应该接收令牌,将其保存在本地存储中并重定向时将其包含在请求中。 当使用某些浏览器扩展对标头内的令牌进行硬编码时,它会按应有的方式工作,但如果没有它,它就无法工作。 我做了一些研究,我明白我所做的事情是错误的,因为 axios 它与 SPA 一起使用,并且它无法重定向到另一个页面并修改标题。 有什么办法可以实现我想要的功能吗? 抱歉,如果它看起来很愚蠢,但我实际上没有任何前端知识,这只是我想添加到我的 Spring 项目中的东西。

这是我尝试过但没有成功。

`async function handleSuccess(response) {
    const token = response.data.jwt;
    const redirect = response.data.url;
    localStorage.setItem('jwt', token);
    const headers = {
        'Authorization': `Bearer ${token}`
    };

    try {
        // Await the axios.get request
        const result = await axios.get(redirect, { headers: headers });
        console.log('Headers:', headers);
        window.location.href = redirect;
    } catch (error) {
        // Handle errors during redirection
        alert('errore');
        console.error('Error during redirection:', error);
    }
} `
javascript java spring axios jwt
1个回答
0
投票

当使用传统的基于服务器渲染的 Web 开发时,浏览器会自动发送 cookie 中的

session-id
(即在登录时将会话 ID 与主体/用户绑定),您也可以将 jwt 令牌带到 url 查询参数中。服务器端将从请求中提取 session-id/url-query-parameter 来识别您是谁。

© www.soinside.com 2019 - 2024. All rights reserved.