- 隨著.net core2的發(fā)布亲轨,越來(lái)越多人使用.net core2開(kāi)發(fā)各種應(yīng)用服務(wù)端杠步,下面我就結(jié)合自己最近開(kāi)發(fā)的一款小程序,給大家分享下员帮,怎么使用小程序登錄后或粮,小程序與服務(wù)端交互的權(quán)限控制。
服務(wù)端的登錄設(shè)計(jì)如下:
-
net core 服務(wù)端捞高,我們使用 JWT 搭建分布式無(wú)狀態(tài)身份驗(yàn)證系統(tǒng)
1.首先在startup.cs中
ConfigureServices(IServiceCollection services)
中添加如下代碼
上述代碼中有一個(gè) 自定的 WabApiAuthroizeAttribute,具體實(shí)現(xiàn)代碼如下:
2.在 Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)中添加
3.我們要?jiǎng)?chuàng)建三個(gè)關(guān)于JWT的類(lèi)
TokenEntity實(shí)體類(lèi)氯材,用來(lái)生成token實(shí)體渣锦,里面大家可在添加屬性
token提供屬性
里面有一些登錄相關(guān)代碼,大家可結(jié)合自己的程序進(jìn)行修改
這樣我們就完成了 JWT的三個(gè)相關(guān)類(lèi)的設(shè)計(jì)氢哮。
-
以下就是我們的具體登錄驗(yàn)證:
添加一個(gè)登錄webapi
-
登錄后返回一個(gè) token實(shí)例袋毙,里面將包含我們之前創(chuàng)建的各個(gè)屬性,重點(diǎn)是access_token
返回的access_token冗尤,將在微信小程序中提交時(shí)附上听盖,就可實(shí)現(xiàn)無(wú)狀態(tài)身份驗(yàn)證。
那個(gè)其他webapi如何判斷身份驗(yàn)證呢生闲?很簡(jiǎn)單媳溺,只要在每個(gè)webapi的類(lèi)或?qū)傩陨咸砑哟藢傩约纯稍禄希?jí)簡(jiǎn)單吧碍讯。
[WebApiAuthorize]
比如我們有一個(gè)獲取小程序首頁(yè)滾動(dòng)圖片鏈接的action:
如此這般即可
下面我們將講講,小程序如何登錄扯躺,如何身份認(rèn)證
首先小程序端的登錄設(shè)計(jì)如下:
小程序登錄界面
上面我們暫且不講捉兴,使用微信登錄的事,只講小程序如何使用我們應(yīng)用的賬號(hào)密碼進(jìn)行登錄:
- 小程序登錄代碼如下:
在小程序中录语,我們首先對(duì)小程序的網(wǎng)絡(luò)請(qǐng)求wx.request進(jìn)行封裝
那使用此類(lèi)進(jìn)行登錄后倍啥,我們可以獲得返回的access_token,并將access_token保存起來(lái),下次澎埠,請(qǐng)求其他動(dòng)作時(shí)虽缕,將會(huì)自動(dòng)在網(wǎng)絡(luò)頭header 附上token,就可使用身份驗(yàn)證,非常簡(jiǎn)單蒲稳。
以上就是我所做的一個(gè)實(shí)例氮趋,因?yàn)榇a較多,有時(shí)沒(méi)有寫(xiě)的很具體江耀,如果大家還疑問(wèn)剩胁,可以直接咨詢(xún)我。