NetCore使用Jwtbearer给WebAPI添加访问控制
現(xiàn)在JWT代替session來(lái)做訪問(wèn)控制已經(jīng)成為大部分webapi的做法,今天我們也來(lái)嘗試一下
WebAPI使用NetCore2.1創(chuàng)建,無(wú)身份認(rèn)證信息
nuget安裝包
IdentityModel 選擇穩(wěn)定版3.9.0Microsoft.AspNetCore.Authorization 版本2.1.1Microsoft.AspNetCore.Authentication.JwtBearer 版本2.1.1?
?Startup注入服務(wù)
之后驗(yàn)證用戶返回token信息
新建TokenController的WebAPI控制器
根據(jù)用戶post的用戶賬號(hào)和密碼從數(shù)據(jù)庫(kù)查詢數(shù)據(jù)
這里我們加入根據(jù)賬號(hào)密碼從db匹配到了數(shù)據(jù)
然后返回token數(shù)據(jù)
上下代碼標(biāo)紅部分需要保持一致,這個(gè)是token需要用來(lái)做校驗(yàn)的,如果不一致可能出現(xiàn)token無(wú)效 簽名無(wú)效等問(wèn)題
PostMan測(cè)試獲取token?
這樣可以成功獲取token,下面來(lái)做權(quán)限校驗(yàn)
在需要授權(quán)的api上新增?[Authorize] 標(biāo)記
?比如萬(wàn)年values控制器
我們分別使用攜帶token和不攜帶token訪問(wèn)values接口
1 攜帶token訪問(wèn),返回了想要的數(shù)據(jù)
?
?2 未攜帶token,返回401
?
?
這樣就達(dá)到了我們想要的效果,以上做個(gè)記錄.
簡(jiǎn)單的demo
github:https://github.com/ermpark/authapidemo
原文地址:https://www.cnblogs.com/weipengpeng/p/9651336.html
.NET社區(qū)新聞,深度好文,歡迎訪問(wèn)公眾號(hào)文章匯總 http://www.csharpkit.com
總結(jié)
以上是生活随笔為你收集整理的NetCore使用Jwtbearer给WebAPI添加访问控制的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Ocelot简易教程(二)之快速开始2
- 下一篇: 自动化流程开源框架BotSharp