当前位置: 首页> 教育> 大学 > 医生在线咨询_樱花草在线观看播放免费视频百度_我想做app推广代理_郑州seo网站管理

医生在线咨询_樱花草在线观看播放免费视频百度_我想做app推广代理_郑州seo网站管理

时间:2025/7/11 8:00:08来源:https://blog.csdn.net/gc_2299/article/details/144175635 浏览次数:0次
医生在线咨询_樱花草在线观看播放免费视频百度_我想做app推广代理_郑州seo网站管理

  本文开始学习基于JWT的身份认证基本用法,相比Cookie、Session等方式,JWT要复杂一些,除了注册认证服务之外,还需提供JWT Token的生成函数或生成类,以便在访问需授权的函数之前获取Token。参考文献1-7中大部分示例都是基于WebApi项目,本文基于Microsoft.AspNetCore. Authentication. JwtBearer包,参照参考文献中的代码,实现最简单的JWT身份认证,由于还不清楚客户端如何保存并传递JWT Token到服务端,暂时使用postman访问WebApi,先不管参数设置是否正确或合适,能调通就可以,后续再逐步学习各种参数的意义及用法。
  新建WebApi项目,在Nuget包管理器中搜索并安装Microsoft.AspNetCore. Authentication. JwtBearer包。
在这里插入图片描述  在appsettings.json中增加JWT设置(这步是抄的参考文献4中的设置),主要是密钥及过期时间(不过测试时发现过期时间没有生效,暂时不清楚是什么地方设置的问题),简单点其实可以直接写死到代码里面,不过既然是照搬,就搬的到位一些。

"JWT": { "Key": "asfasfdflj134aanjkdsjiio1232sdasdfdfkandsf12","expres": "3","Issuer": "gc_2299","Audience": "gc_2299" 
}

  创建JWT Token的函数也是抄的参考文献4,不过没有单独创建类,而是将其放在了WebApi的控制器类中,设置了允许匿名访问,代码就不贴了,主要是调用JwtSecurityTokenHandler类使用密钥针对claims实例生成Token。
  接着是在program.cs文件中添加JwtBear认证服务,这里是抄的参考文献5中的代码,最初测试时使用的是参考文献4的代码,但是测试时始终认证不通过,搞不清楚怎么回事(最后发现是把UseAuthentication和UseAuthorization的顺序搞反了),就换成了参考文献5中的代码,同时将TokenValidationParameters的部分验证参数值调整成了false,最终使用postman调用WebApi函数成功。

builder.Services.AddAuthentication(options =>
{options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(options =>
{options.TokenValidationParameters = new TokenValidationParameters{ValidateAudience = false,ValidateLifetime = true,ValidateIssuer = false,ValidateIssuerSigningKey = true,        IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(JwtOtp.Key))};
});

  然后就是将需要访问控制的函数或类标识Authorize特性,本文测试时设置GetInfo函数需要访问控制。
  打开postman,输入GetInfo地址,直接访问的话会报401未授权错误,如下图所示:

在这里插入图片描述

  在postman中输入获取Token的地址,获取token,如下图所示:
在这里插入图片描述

  照下图所示,将Token放在Headers中,key为Authorization,值的话是Bearer+空格+Token,然后再调用GetInfo函数即可正常返回数据。
在这里插入图片描述
  上述测试内容虽然最终结果是能调用成功,但还不清楚其中有多少使用错误或设置错误的地方,后续还会继续学习并测试Jwt身份认证的相关内容。

参考文献:
[1]https://www.jianshu.com/p/a2804e72d296
[2]https://blog.csdn.net/sD7O95O/article/details/85043160
[3]https://www.cnblogs.com/qiongkangle/p/13347283.html
[4]https://www.cnblogs.com/xbhp/p/17401507.html
[5]https://www.cnblogs.com/superstar/p/16491428.html
[6]https://blog.csdn.net/weixin_44877917/article/details/140609294
[7]https://blog.csdn.net/qq_40287041/article/details/143368882
[8]https://blog.csdn.net/Tdh5258/article/details/119064695

关键字:医生在线咨询_樱花草在线观看播放免费视频百度_我想做app推广代理_郑州seo网站管理

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: