如何實(shí)現(xiàn)微信小程序與.net core應(yīng)用服務(wù)端的無狀態(tài)身份驗(yàn)證

  • 隨著.net core2的發(fā)布,越來越多人使用.net core2開發(fā)各種應(yīng)用服務(wù)端,下面我就結(jié)合自己最近開發(fā)的一款小程序,給大家分享下,怎么使用小程序登錄后,小程序與服務(wù)端交互的權(quán)限控制。

服務(wù)端的登錄設(shè)計(jì)如下:

  • net core 服務(wù)端,我們使用 JWT 搭建分布式無狀態(tài)身份驗(yàn)證系統(tǒng)

    1.首先在startup.cs中

    ConfigureServices(IServiceCollection services)

    中添加如下代碼

教你如何實(shí)現(xiàn)微信小程序與.net core應(yīng)用服務(wù)端的無狀態(tài)身份驗(yàn)證
教你如何實(shí)現(xiàn)微信小程序與.net core應(yīng)用服務(wù)端的無狀態(tài)身份驗(yàn)證

上述代碼中有一個(gè) 自定的 WabApiAuthroizeAttribute,具體實(shí)現(xiàn)代碼如下:

教你如何實(shí)現(xiàn)微信小程序與.net core應(yīng)用服務(wù)端的無狀態(tài)身份驗(yàn)證

2.在 Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)中添加

教你如何實(shí)現(xiàn)微信小程序與.net core應(yīng)用服務(wù)端的無狀態(tài)身份驗(yàn)證

3.我們要?jiǎng)?chuàng)建三個(gè)關(guān)于JWT的類

教你如何實(shí)現(xiàn)微信小程序與.net core應(yīng)用服務(wù)端的無狀態(tài)身份驗(yàn)證

TokenEntity實(shí)體類,用來生成token實(shí)體,里面大家可在添加屬性

教你如何實(shí)現(xiàn)微信小程序與.net core應(yīng)用服務(wù)端的無狀態(tài)身份驗(yàn)證

token提供屬性

教你如何實(shí)現(xiàn)微信小程序與.net core應(yīng)用服務(wù)端的無狀態(tài)身份驗(yàn)證
教你如何實(shí)現(xiàn)微信小程序與.net core應(yīng)用服務(wù)端的無狀態(tài)身份驗(yàn)證
教你如何實(shí)現(xiàn)微信小程序與.net core應(yīng)用服務(wù)端的無狀態(tài)身份驗(yàn)證
教你如何實(shí)現(xiàn)微信小程序與.net core應(yīng)用服務(wù)端的無狀態(tài)身份驗(yàn)證

里面有一些登錄相關(guān)代碼,大家可結(jié)合自己的程序進(jìn)行修改

這樣我們就完成了 JWT的三個(gè)相關(guān)類的設(shè)計(jì)。

  • 以下就是我們的具體登錄驗(yàn)證:

    添加一個(gè)登錄webapi

  • 教你如何實(shí)現(xiàn)微信小程序與.net core應(yīng)用服務(wù)端的無狀態(tài)身份驗(yàn)證

    登錄后返回一個(gè) token實(shí)例,里面將包含我們之前創(chuàng)建的各個(gè)屬性,重點(diǎn)是access_token

返回的access_token,將在微信小程序中提交時(shí)附上,就可實(shí)現(xiàn)無狀態(tài)身份驗(yàn)證。

那個(gè)其他webapi如何判斷身份驗(yàn)證呢?很簡單,只要在每個(gè)webapi的類或?qū)傩陨咸砑哟藢傩约纯?,超?jí)簡單吧。

[WebApiAuthorize]

比如我們有一個(gè)獲取小程序首頁滾動(dòng)圖片鏈接的action:

教你如何實(shí)現(xiàn)微信小程序與.net core應(yīng)用服務(wù)端的無狀態(tài)身份驗(yàn)證

如此這般即可

下面我們將講講,小程序如何登錄,如何身份認(rèn)證

首先小程序端的登錄設(shè)計(jì)如下:

教你如何實(shí)現(xiàn)微信小程序與.net core應(yīng)用服務(wù)端的無狀態(tài)身份驗(yàn)證

小程序登錄界面

上面我們暫且不講,使用微信登錄的事,只講小程序如何使用我們應(yīng)用的賬號(hào)密碼進(jìn)行登錄:

  • 小程序登錄代碼如下:

在小程序中,我們首先對(duì)小程序的網(wǎng)絡(luò)請(qǐng)求wx.request進(jìn)行封裝

教你如何實(shí)現(xiàn)微信小程序與.net core應(yīng)用服務(wù)端的無狀態(tài)身份驗(yàn)證
教你如何實(shí)現(xiàn)微信小程序與.net core應(yīng)用服務(wù)端的無狀態(tài)身份驗(yàn)證

那使用此類進(jìn)行登錄后,我們可以獲得返回的access_token,并將access_token保存起來,下次,請(qǐng)求其他動(dòng)作時(shí),將會(huì)自動(dòng)在網(wǎng)絡(luò)頭header 附上token,就可使用身份驗(yàn)證,非常簡單。

以上就是我所做的一個(gè)實(shí)例,因?yàn)榇a較多,有時(shí)沒有寫的很具體,如果大家還疑問,可以直接咨詢我。

原文地址:https://www.toutiao.com/i6480281834511925774/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容