现在JWT代替session来做访问控制已经成为大部分webapi的做法,今天我们也来尝试一下

WebAPI使用NetCore2.1创建,无身份认证信息

NetCore使用Jwtbearer给WebAPI添加访问控制

nuget安装包

IdentityModel 选择稳定版3.9.0Microsoft.AspNetCore.Authorization 版本2.1.1Microsoft.AspNetCore.Authentication.JwtBearer 版本2.1.1

 

NetCore使用Jwtbearer给WebAPI添加访问控制

 Startup注入服务

NetCore使用Jwtbearer给WebAPI添加访问控制

之后验证用户返回token信息

新建TokenController的WebAPI控制器

根据用户post的用户账号和密码从数据库查询数据

这里我们加入根据账号密码从db匹配到了数据

然后返回token数据

上下代码标红部分需要保持一致,这个是token需要用来做校验的,如果不一致可能出现token无效 签名无效等问题

NetCore使用Jwtbearer给WebAPI添加访问控制

PostMan测试获取token NetCore使用Jwtbearer给WebAPI添加访问控制

这样可以成功获取token,下面来做权限校验

在需要授权的api上新增 [Authorize] 标记

 比如万年values控制器

NetCore使用Jwtbearer给WebAPI添加访问控制

我们分别使用携带token和不携带token访问values接口

1 携带token访问,返回了想要的数据

NetCore使用Jwtbearer给WebAPI添加访问控制

 

 2 未携带token,返回401

 NetCore使用Jwtbearer给WebAPI添加访问控制

 

这样就达到了我们想要的效果,以上做个记录.

简单的demo

github:https://github.com/ermpark/authapidemo

原文地址:https://www.cnblogs.com/weipengpeng/p/9651336.html



.NET社区新闻,深度好文,欢迎访问公众号文章汇总 http://www.csharpkit.com

NetCore使用Jwtbearer给WebAPI添加访问控制

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-10
  • 2022-12-23
猜你喜欢
  • 2022-02-27
  • 2022-12-23
  • 2022-12-23
  • 2022-02-26
  • 2022-12-23
  • 2022-02-14
相关资源
相似解决方案