现在JWT代替session来做访问控制已经成为大部分webapi的做法,今天我们也来尝试一下
WebAPI使用NetCore2.1创建,无身份认证信息
nuget安装包
IdentityModel 选择稳定版3.9.0Microsoft.AspNetCore.Authorization 版本2.1.1Microsoft.AspNetCore.Authentication.JwtBearer 版本2.1.1
Startup注入服务
之后验证用户返回token信息
新建TokenController的WebAPI控制器
根据用户post的用户账号和密码从数据库查询数据
这里我们加入根据账号密码从db匹配到了数据
然后返回token数据
上下代码标红部分需要保持一致,这个是token需要用来做校验的,如果不一致可能出现token无效 签名无效等问题
PostMan测试获取token
这样可以成功获取token,下面来做权限校验
在需要授权的api上新增 [Authorize] 标记
比如万年values控制器
我们分别使用携带token和不携带token访问values接口
1 携带token访问,返回了想要的数据
2 未携带token,返回401
这样就达到了我们想要的效果,以上做个记录.
简单的demo
github:https://github.com/ermpark/authapidemo
原文地址:https://www.cnblogs.com/weipengpeng/p/9651336.html
.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com