如何實現微信小程序與.net core應用服務端的無狀態身份驗證
發表時間:2022-9-14
發布人:葵宇科技
瀏覽次數:27
隨著.net core2的發布,越來越多人使用.net core2開發各種應用服務端,下面我就結合自己最近開發的一款小程序,給大家分享下,怎么使用小程序登錄后,小程序與服務端交互的權限控制。
.net core 服務端的登錄設計如下:
net core 服務端,我們使用 JWT 搭建分布式無狀態身份驗證系統
1.首先在startup.cs中 ConfigureServices(IServiceCollection services) 中添加如下代碼
上述代碼中有一個 自定的 WabApiAuthroizeAttribute,具體實現代碼如下:
2.在 Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)中添加
3.我們要創建三個關于JWT的類
TokenEntity實體類,用來生成token實體,里面大家可在添加屬性
token提供屬性
里面有一些登錄相關代碼,大家可結合自己的程序進行修改
這樣我們就完成了 JWT的三個相關類的設計。
以下就是我們的具體登錄驗證:
添加一個登錄webapi
登錄后返回一個 token實例,里面將包含我們之前創建的各個屬性,重點是access_token
返回的access_token,將在微信小程序中提交時附上,就可實現無狀態身份驗證。
那個其他webapi如何判斷身份驗證呢?很簡單,只要在每個webapi的類或屬性上添加此屬性即可,超級簡單吧。
[WebApiAuthorize]
比如我們有一個獲取小程序首頁滾動圖片鏈接的action:
如此這般即可
下面我們將講講,小程序如何登錄,如何身份認證
首先小程序端的登錄設計如下:
小程序登錄界面
上面我們暫且不講,使用微信登錄的事,只講小程序如何使用我們應用的賬號密碼進行登錄:
小程序登錄代碼如下:
在小程序中,我們首先對小程序的網絡請求wx.request進行封裝
那使用此類進行登錄后,我們可以獲得返回的access_token,并將access_token保存起來,下次,請求其他動作時,將會自動在網絡頭header 附上token,就可使用身份驗證,非常簡單。
以上就是我所做的一個實例,因為代碼較多,有時沒有寫的很具體,如果大家還疑問,可以直接咨詢我。