Swagger中新增Token驗證

2021-10-25 18:27:23 字數 4599 閱讀 3839

平常做專案使用mvc+webapi,採取前後端分離的方式,後台提供api介面給前端開發人員。這個過程中遇到乙個問題後台開發人員怎麼提供介面說明文件給前端開發人員。為了解決這個問題,專案中引用swagger(我比較喜歡戲稱為「**哥」)。

列出所有api控制器和控制器描述

那麼既然是api,肯定涉及到安全驗證問題,那麼怎麼在測試文件增加新增token安全驗證呢;

下面我們來看看

1、定義swagger請求頭

using microsoft.aspnetcore.authorization;using swashbuckle.aspnetcore.swagger;using swashbuckle.aspnetcore.swaggergen;using system.collections.generic;using system.linq;using system.reflection;namespace companyname.projectname.httpapi.host.codeif (context.apidescription.trygetmethodinfo(out methodinfo methodinfo)));}}#endregion 新方法}}}
2、在configureservices方法新增operationfilter

////////////// this method gets called by the runtime. use this method to add services to the container.public iserviceprovider configureservices(iservicecollection services));//小寫options.serializersettings.contractresolver = new camelcasepropertynamescontractresolver();options.serializersettings.contractresolver = new defaultcontractresolver();//   //  options.serializersettings.dateformatstring = "yyyy-mm-dd";});//   services.addmvc().addxmlserializerformatters();//  services.addmvc().addxmldatacontractserializerformatters();services.addlogging();services.addcors(options =>options.addpolicy("allowsamedomain", builder => builder.allowanyorigin().allowanymethod().allowanyheader()));services.configure(options =>);#region swaggerservices.addswaggergen(c =>,license = new license});c.swaggerdoc("v2", new info,license = new license});c.operationfilter();c.documentfilter();var xmlfile = $".xml";c.includexmlcomments(xmlpath);});#endregion swagger#region miniprofilerif (bool.parse(configuration["isuseminiprofiler"]))#endregion miniprofilerservices.adddbcontext(options => options.usemysql(configuration["data:mycat:connectionstring"]));var container = autofacext.initautofac(services, assembly.getexecutingassembly());return new autofacserviceprovider(container);}
3、定義乙個actionfilterattribute

using companyname.projectname.core;using microsoft.aspnetcore.mvc;using microsoft.aspnetcore.mvc.filters;using newtonsoft.json;using system.security.principal;namespace companyname.projectname.httpapi.host);jsonserializersettings jsetting = new jsonserializersettings();jsetting.nullvaluehandling = nullvaluehandling.ignore;jsetting.converters.add(new newtonsoft.json.converters.isodatetimeconverter());json.serializersettings = jsetting;context.result = json;}else}else);jsonserializersettings jsetting = new jsonserializersettings();jsetting.nullvaluehandling = nullvaluehandling.ignore;jsetting.converters.add(new newtonsoft.json.converters.isodatetimeconverter());json.serializersettings = jsetting;context.result = json;}base.onactionexecuting(context);}}}
4、最後在需要的地方使用  [basicauth]

////// 新增///////// 主鍵id[basicauth][modelvalidationattribute][apiexplorersettings(groupname = "v1")][httppost, route("create")]public async task> createasync([frombody]createwebconfigdto model)
我們就可以看到authorization - 請輸入token,格式為bearer ***

token驗證 Swagger中新增Token驗證

平常做專案使用mvc webapi,採取前後端分離的方式,後台提供api介面給前端開發人員。這個過程中遇到乙個問題後台開發人員怎麼提供介面說明文件給前端開發人員。為了解決這個問題,專案中引用swagger 我比較喜歡戲稱為 哥 列出所有api控制器和控制器描述 那麼既然是api,肯定涉及到安全驗證問...

三 Swagger驗證(全域性token)

啟用驗證之後再看 多了個小按鈕 點開之後是如下介面 文字框裡要如輸入從伺服器獲取的token。格式為 bearer 空格 token。bearer可以看作是乙個預設的規則。新增配置 region 啟用swagger驗證功能 新增乙個必須的全域性安全資訊,和addsecuritydefinition方...

SpringBoot新增Swagger配置

swagger 是乙個規範和完整的框架,用於生成 描述 呼叫和視覺化 restful 風格的 web 服務。總體目標是使客戶端和檔案系統作為伺服器以同樣的速度來更新。檔案的方法 引數 模型緊密整合到伺服器端的 允許api來始終保持同步。swagger 讓部署管理和使用功能強大的api從未如此簡單。1...