我有春天启动的应用程序在哪里集成JWT认证。
为了验证,用户需要发送POST请求用户名和密码,以/login
,然后他会用{"token": "BEARER SOME_TOKEN" }
JSON响应。
在我昂首阔步UI,当我点击“试试吧”,并执行的请求,该请求被没有任何令牌发送。
问题 - 有什么办法来查询登录请求,并添加授权令牌到扬鞭UI请求?
在这种情况下,我们可以截取令牌并将其添加到定义SwaggerUIBundle当index.html
使用这两个拦截器的所有要求:
const ui = SwaggerUIBundle({
...
responseInterceptor:
function (response) {
if (response.obj.access_token) {
console.log(response.obj.access_token)
const token = response.obj.access_token;
localStorage.setItem("token", token)
}
return response;
},
requestInterceptor:
function (request) {
request.headers.Authorization = "Bearer " + localStorage.getItem("token");
return request;
}
}
该responseInterceptor捕获响应,如果它包含字段“令牌”它本地存储保存它。该requestInterceptor增加了Authorization头每次调用您使用来自本地存储的值从招摇的UI做。
此修复程序是使用招摇的UI V3:
<script src="https://unpkg.com/[email protected]/swagger-ui-standalone-preset.js"></script>
<script src="https://unpkg.com/[email protected]/swagger-ui-bundle.js"></script>