【问题标题】:how to pass http authentication headers in spring boot如何在 Spring Boot 中传递 http 身份验证标头
【发布时间】:2022-02-19 01:49:53
【问题描述】:
我正在定制我的 Spring Boot 授权服务器。使用我创建的 html 页面中的用户名和密码登录后,我需要重定向回 /oauth/token 端点,以获取访问令牌。
使用邮递员时工作正常。但是,当我将 defaultsuccessurl 作为 /ouath/token 时,它会显示一个默认登录页面来输入用户名和密码,这是来自邮递员的基本身份验证用户名和密码。
因此,为了从前端获取访问令牌,我需要将基本身份验证详细信息添加为 http 标头。我不知道在哪里添加 HTTP 标头以及如何在使用前端成功登录后使用它来获取访问令牌。
任何帮助表示赞赏
【问题讨论】:
标签:
html
spring-boot
oauth
authorization
【解决方案1】:
有多种方法可以做到这一点。一种方法是:与 html 一起,您可以使用 Javascript 设置 HttpHeaders 并发送请求。下面是一个示例代码 sn-p(虽然不完整)
var user = "user1"; //ideally this should come from Input field in html page
var password = "MySecret";//ideally this should come from password field in html page
// var authorizationBasic = $.base64.btoa(user + ':' + password);
var authorizationBasic = window.btoa(user + ':' + password);
var request = new XMLHttpRequest();
request.open('POST', oAuth.AuthorizationServer, true);
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
request.setRequestHeader('Authorization', 'Basic ' + authorizationBasic);
request.setRequestHeader('Accept', 'application/json');
request.send("<requestURL>");