日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BeetleX.FastHttpApi之JWT和自定义访问验证

發(fā)布時間:2023/12/4 编程问答 150 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BeetleX.FastHttpApi之JWT和自定义访问验证 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

??????? BeetleX.FastHttpApi.Jwt組件是BeetleX.FastHttpApi的JWT安全驗證插件,通組件的簡單配置即可以實現(xiàn)對webapi進行安全訪問控制。接下來介紹如何使用這組件并和其他自定義驗證兼容。

使用

????????本示例需要引用兩個組件分別是:BeetleX.FastHttpApi.Hosting和BeetleX.FastHttpApi.Jwt。前者是簡單托管服務構建,后者則是JWT驗證。引用組件后可以在main訪問編寫以下代碼

class Program {static void Main(string[] args){var builder = new HostBuilder().ConfigureServices((hostContext, services) =>{services.UseBeetlexHttp(o =>{o.LogToConsole = true;o.LogLevel = BeetleX.EventArgs.LogType.Warring;o.Port = 80;o.SetDebug();},(http) =>{http.UseJWT();},typeof(Program).Assembly);});builder.Build().Run();} }

通過HttpApiServer對象的UseJWT方法開啟相關驗證,當開戶后所有控制器訪問都必須獲取JWT許可(包括cookie或頭部Authorization包括相關憑證)。

控制器

? ? ? ??當開啟JWT后默認情況下控制器所有方法都需要經(jīng)過驗證,但可以通過組件提供的Attribute來更改相關驗證方式。

[Controller]public class Home{[AuthMark(AuthMarkType.NoValidation)]public bool Login(string name, string pwd, IHttpContext context){var result = (name == "admin" && pwd == "123456");if (result)context.SetAdminJwtToken(name);return result;}[AuthMark(AuthMarkType.Admin)]public object List(){return Northwind.Data.DataHelper.Defalut.Employees;}}

可以通過[AuthMark(AuthMarkType.NoValidation)]標記方法或整個API不進行驗證處理。還可以通過?[AuthMark(AuthMarkType.Admin)]來標記方法訪問的角色必須是admin。以上代碼是把Login標記為不需要驗證,然后在方法中調用SetAdminJwtToken或SetJwtToken方法來設置當前會話的登陸憑證。

其他驗證

????????有時候希望個別API兼容其他驗證方式,這個時候可以在UseJWT轉入一個處理函數(shù)。

http.UseJWT((o, e) => {var token = e.HttpContext.Data["token"];if (token != null){if (token == "admin"){e.Success();}else{e.Failure("當前憑證無效!");}} });

可以在方法中調用Success或Failure來告訴組件自定義驗證情況,如果這兩個方法都不調用的情況下會路由回默認的JWT驗證。

完整示例?

https://github.com/beetlex-io/BeetleX-Samples/tree/master/Web.JWT

總結

以上是生活随笔為你收集整理的BeetleX.FastHttpApi之JWT和自定义访问验证的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。