.net core jwt 入门记录

百度里搜索里搜索了很多jwt的文章,跟着文章写了一个demo,这里记录下学习过程中碰上的问题。看文章多遍,不如手工实现一次。

模板已上传到github.com:dogvane/webapi_jwt_template

让项目先飞起来

网上的都只是文章和代码片段,github里找的,要么跑不起来(需要配置的其它依赖,数据库等),要么代码结构巨复杂,不知从何改起。

对于demo来说,就只需要2个功能

1.生成jwt的token并返回给前端(AccountController.Login)

2.执行一个需要权限业务方法,并在里面获得用户id(AccountController.DoYourTask)

需要注意的地方:

生成token代码里,如果发行人信息和 startup.cs 里的不一致,是无法验证通过的,特别是当你的代码时分别从2个地方copy的时候(不要问我怎么知道的o(>﹏<)o)。

所以,一个解析jwt信息的网站很重要 在线解析jwt参数 http://jwt.calebb.net/

在做测试时,使用了 swagger 让swagger ui 的请求带头部信息 https://www.cnblogs.com/JacZhu/p/6188968.html

至于为什么要在 BaseController里解析出UserId,大家自己领悟吧。在这里一开始找了很多文章,没一篇是说如何从jwt里解析出数据的,因为脑子没转过来,所以呵呵了很久。

其实,换一个角度想一想就知道了,不需要找什么文章,token从Request里可以获取,jwt的的处理类已经加入系统,只需要翻查一下api就行。所以说,读博百篇,不如动手实现。

加几个关键词,方便有这样搜索需求的同学:.net core jwt Decode userid



原文地址:https://www.cnblogs.com/yahle/p/webapi_jwt_template.html