.NET Core 集成JWT认证
JWT(Json web token)
就不用过多的介绍了,在 .NET Core 开发中使用JWT进行认证也是比较常见的,而且接入过程也比较简单,随便配置配置就好了。
要想使用JWT,仅仅只需要在项目中引用微软的一个认证组件。
然后将一些敏感数据可以放在配置文件appsettings.json
中。
在Startup
中添加配置并且使用
这样一个简单的JWT配置就完成了,接下来新写一个接口去生成token。
模拟用户登录,成功登录则去生成token,在实际应用中还可以对接第三方登录系统进行认证,调用接口看下效果。
可以看到第一个接口输入正确的账号密码,成功返回了token,第二个接口会抛出一个异常。
接下来去写两个接口,去验证一下token的使用是否正常,写一个需要授权的接口和一个不需要授权的接口。
这两个接口的唯一区别就是,[Authorize]
、[AllowAnonymous]
。
添加了 [Authorize]
特性的表明是需要进行授权才可以访问此接口,而添加了[AllowAnonymous]
特性则表明不需要授权谁都可以访问,同样调用看一下效果。
第一个接口没有返回出结果,可见生效了,此时调用的时候就需要带上我们前面生成的token成功授权后才能返回数据。
有时候当我们没有成功授权,会直接返回一个401的错误页面,如果需要自定义返回信息需要怎么做呢?
这个有好几种做法,可以用中间件,拦截器等等,不过这里推荐一种组件集成好的做法,直接上代码。
添加上面这段代码即可,await context.Response.WriteAsync()
可以返回你自定义的错误消息,这里返回的是一个json字符串。
另外还有一种场景,默认我们拿到token进行授权访问,是需要在请求头中添加Authorization Bearer {token}
这种方式的,如果我不想在请求头中使用要怎么做呢?比如我想将token放在URL参数中,或者cookie中?
同样也是可以的,而且实现方式也超级简单,看下面代码。
这里演示了将token放在URL请求参数中,其它情况请根据实际开发场景进行修改即可。
__EOF__

本文链接:https://www.cnblogs.com/meowv/p/13614296.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?