【发布时间】:2020-11-13 06:49:13
【问题描述】:
我正在使用带有 ExtJS 的 Spring Boot 和 /login 页面,该页面是带有一些 JQuery javascript 的纯 JSP。我正在尝试集成 JWT 以保护我的数据 api。使用我能找到的实现 JWT 的方法,我实现了 JWTRequestFilter 并从 Spring Security 中删除了内置登录流程。
我的登录表单现在向 /authenticate 方法发出 $ajax POST 请求,该方法在响应中返回一个令牌。当我在 Postman 中手动设置 Authentication 标头并触发 /welcome 页面的 GET 请求时,我得到一个有效的响应...
以下代码是我尝试使用令牌更新标头并获取 /welcome 页面的方式。我收到 401 错误,因为当我尝试使用此代码访问页面时缺少 Authentication 标头...
$form.on('submit', function(e) {
e.preventDefault();
$.ajax({
url: $form.attr('action'),
type: 'POST',
dataType: 'json',
contentType: 'application/json',
data: JSON.stringify(dat),
success: function(result) {
var d = new Date();
d.setTime(d.getTime() + (3*24*60*60*1000));
var expires = "expires="+ d.toUTCString();
// $('head').append('<meta name="Authorization" content="Bearer ' + result.token + '"');
window.localStorage.setItem("Authorization", "Bearer " + result.token);
// document.cookie = "Authorization=Bearer "+result.token + ";" + expires + ";path=/;httpOnly";
window.location="/welcome";
} error: funciton() {}
);
我尝试将令牌放入 cookie 中(Tomcat9 由于格式而忽略了该令牌)。我目前正在单独研究这个问题。
我还尝试为欢迎页面创建一个 XMLHttpRequest(),它让我返回原始 HTML,但我不确定是否需要使用此响应以某种方式重新加载 DOM...
在响应中获取授权令牌并将其放在 /welcome 页面的后续 /GET 标头中的最佳方法是什么?
【问题讨论】:
标签: javascript jquery spring-boot extjs jwt