JWT认证授权如何在ASP.NETCore项目中使用-创新互联

这篇文章将为大家详细讲解有关JWT认证授权如何在ASP.NET Core项目中使用,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

曹县ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!

Jwt优势与劣势


优势


1、 无状态

token 存储身份验证所有信息 , 服务端不需要保存用户身份验证信息, 减少服务端压力 , 服务端更容易水平扩展, 由于无状态, 又会导致它较大缺点 , 很难注销

2、 支持跨域访问

Cookie是不允许垮域访问的,token支持

3、 跨语言

基于标准化的 JSON Web Token (JWT) , 不依赖特定某一个语言 , 例如生成的Token可以对多种语言使用(Net , Java , PHP …)

劣势


1、Token有效性问题

后台很难注销已经发布的Token , 通常需要借助第三方储存(数据库/缓存) 实现注销, 这样就会失去JWT较大的优势

2、占带宽

Token长度(取决存放内容) 比session_id大 , 每次请求多消耗带宽 , token只存必要信息 , 避免token过长

3、需要实现续签

cookies – session 通常是框架已经实现续签功能, 每次访问把过期时间更新, JWT需要自己实现, 参考OAuth3刷新Token机制实现刷新Token

4、消耗更多CPU

每次请求需要对内容解密和验证签名这两步操作,典型用时间换空间


只能根据自身使用场景决定使用哪一种身份验证方案 , 没有一种方案是通用的,完美的


.NET Core集成JWT认证授权服务

1、认证服务API:认证用户,并发布Token

1、引入nuget包,System.IdentityModel.Tokens.Jwt
2、创建生成Token的服务,建议使用面向接口和实现编程,方便服务注入容器ServicesCollection(涉及DI和IOC概念)
3、创建接口


namespace JWTS.Services
{
  public interface IJWTService
  {
    /// 
    /// 根据验证通过后的用户以及角色生成Token,以达到角色控制的作用
    /// 
    /// 
    /// 
    /// 
    string GetToken(string userName,string role);
  }
}

网站标题:JWT认证授权如何在ASP.NETCore项目中使用-创新互联
分享地址:http://hbruida.cn/article/dohcsg.html