我正在ASP.NET Core MVC中开发Web API,不知道有没有办法让swagger中的授权令牌持久化,这样就不需要每次运行应用程序时都手动进行授权了,这样会让测试变得更容易。
j5fpnvbx1#
本地存储器可用于保存授权令牌。要将令牌存储到本地存储中,请在浏览器控制台中键入:
localStorage.setItem('authKey', 'the authorization token')
然后,使用请求拦截器从本地存储提供令牌作为Authorization头:
const ui = SwaggerUIBundle({ url: "/swagger/v2/swagger.json", dom_id: '#swagger-ui', deepLinking: true, requestInterceptor: function (req) { var key = localStorage.getItem("authKey"); if (key && key.trim() !== "") { req.headers.Authorization = 'Bearer ' + key; console.log('Authorized from authKey'); } }, presets: [ SwaggerUIBundle.presets.apis, SwaggerUIStandalonePreset ], plugins: [ SwaggerUIBundle.plugins.DownloadUrl ], layout: "StandaloneLayout", }) window.ui = ui;
rdlzhqv92#
如果您使用.NET CORESwashbuckle,则可以执行以下步骤来保存授权数据。1.创建index.html用于自定义SWAGGER UI配置。index.html应基于the default version1.打开上面刚创建的index.html文件,在window.onload事件中向persistAuthorization添加一行configObject.persistAuthorization = true;
configObject.persistAuthorization = true;
f0brbegy3#
您可以使用EnablePersistAuthorization选项:
EnablePersistAuthorization
app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "v1"); c.EnablePersistAuthorization(); });
https://github.com/domaindrivendev/Swashbuckle.AspNetCore/pull/2213
3条答案
按热度按时间j5fpnvbx1#
本地存储器可用于保存授权令牌。
要将令牌存储到本地存储中,请在浏览器控制台中键入:
然后,使用请求拦截器从本地存储提供令牌作为Authorization头:
rdlzhqv92#
如果您使用.NET CORESwashbuckle,则可以执行以下步骤来保存授权数据。
1.创建index.html用于自定义SWAGGER UI配置。index.html应基于the default version
1.打开上面刚创建的index.html文件,在window.onload事件中向persistAuthorization添加一行
configObject.persistAuthorization = true;
f0brbegy3#
您可以使用
EnablePersistAuthorization
选项:https://github.com/domaindrivendev/Swashbuckle.AspNetCore/pull/2213