.NET8 WebApi框架接口认证方式:Bearer Token/Jwt Token详解|C/S开发框架

.NET8 WebApi框架接口认证方式:Bearer Token/Jwt Token
目录
接口认证方式:Bearer Token
一,前言:
因为HTTP协议是开放的,可以任人调用。所以,本次项目接口是不希望被随意调用,就做了访问权限的控制,认证是好的用户,才允许调用API。
二,测试接口:
如果要测试接口,首先要进行登录,登录成功会有个token信息,向api接口发送请求的时候必须带上这个token。
三,注意点:
token一般有时间限制。token期限(开发版本2小时,上线版本7天),token过期将会返回20001状态码。
四,其他事项:
- 用户登录成功将会返回一个token,该token在其后的每次请求中都必须携带,否则将视为无权访问。
- token具有过期时限,如果token过期,即代表用户需要重新重录,获取新的token。
- token必须使用 Bearer Token(Token 令牌) 方式,使用该方式头部会多一个 authorization。
- token即将过期时,系统将返回新的token,请获取响应 header 里面的X-Token进行替换。
- token将设置黑名单,如用户退出,或即将过期的token将会进入黑名单,即无效token
Swagger 使用 Bearer Token

Authorize 授权 (设置token值)


授权成功,点Close关闭窗体

测试接口
点【Try it out】按钮:

点【Execute】按钮:

返回数据成功:

模拟登出



CSFramework.WebApi 框架 Bearer Token/Jwt Token 应用
版本:CSFramework.WebApiV3.0(.NET8/NETCore版)
WebApi服务端配置JWT Token认证

文件名:JwtExtentions
逻辑:启动WebApi服务,设置WebApi授权模式,使用JWT Token认证。
C# 全选
Console.WriteLine("Config Jwt...");
services.AddJwtBearer(_Configuration, "jwt");C# 全选
public static IServiceCollection AddJwtBearer(this IServiceCollection services, IConfiguration configuration, string sectionName)
{
//获取jwt参数配置
services.Configure<JwtOptions>(configuration.GetSection(sectionName));
var myOptions = configuration.GetSection(sectionName).Get<JwtOptions>();
//设置授权模式
services.AddAuthentication(x =>
{
x.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;//Bearer模式
x.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(x =>
{
JwtHelper.ConfigJwt(x, myOptions);
});
return services;
}WebApi 服务端写入 Bearer Token/Jwt Token 值

文件名:JwtHelper.cs
逻辑:用户登录成功,授权服务器写入token值。
C# 全选
public static string WriteJwtToken(JwtOptions options, JwtClaimData claim)
{
var claims = new[]
{
//new Claim(ClaimTypes.Name, claim.UserId??"") ,
new Claim("userId", claim.UserId??"") ,
new Claim("userName" , claim.UserName??"") ,
new Claim("publicKey" , claim.PublicKey??"") ,
new Claim("appId" , claim.AppId??"") ,
new Claim("language" , claim.Language??"") ,
new Claim("dbid" , claim.DBID??"") ,
new Claim("phone" , claim.Phone??"") ,
};
var key = new Microsoft.IdentityModel.Tokens.SymmetricSecurityKey(Encoding.UTF8.GetBytes(options.Secret));
var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
var jwtToken = new JwtSecurityToken(
issuer: options.Issuer,
audience: options.Audience,
notBefore: DateTime.Now,
expires: DateTime.Now.AddHours(options.AccessExpireHours),
claims: claims,
signingCredentials: credentials);
//生成token字符串
var token = new JwtSecurityTokenHandler().WriteToken(jwtToken);
return token;
}客户端调用
C# 全选
using HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", bearerToken);
参考文档:
Postman工具设置Bearer Token与调试WebApi接口|C/S开发框架
WebApi框架 | 接口认证方式:Bearer Token|C/S开发框架
CSFramework.WebapiV3(.NET7/NetCore) 系统安全及Token令牌介绍|C/S开发框架
CSFramework.WebApi后端框架Token令牌体系架构与应用详解
.NET WebApi后端开发框架-微信小程序消息订阅与推送案例详解
C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
.NET Core JWT Token 介绍|C/S开发框架
OAuth 2.0 access_token / refresh_token 详解-C/S开发框架
【原创】WebApi开发框架:Token生成、Token缓存原理、Token验证、令牌机制与原理
CS软件授权注册系统|WebApi服务器介绍|C/S开发框架
CSFramework.WebApi框架提供两种登录接口(PC端登录、APP登录)|C/S开发框架
.NETCore WebApi后端开发框架+达梦数据库测试报告|C/S开发框架
.NETCore WebApi框架:从appsettings.json 读取参数配置|C/S开发框架
CSFramework.WebApi后端框架Log日志配置详解
微信小程序后端框架 | C# ASP.NET服务端WebApi快速开发框架平台
WebApi快速开发框架,C# ASP.NET后端开发平台
Postman工具设置Bearer Token与调试WebApi接口|C/S开发框架
WebApi框架 | 接口认证方式:Bearer Token|C/S开发框架
CSFramework.WebapiV3(.NET7/NetCore) 系统安全及Token令牌介绍|C/S开发框架
CSFramework.WebApi后端框架Token令牌体系架构与应用详解
.NET WebApi后端开发框架-微信小程序消息订阅与推送案例详解
C/S软件授权注册系统V3.0(Winform+WebApi+.NET8+EFCore版本)|C/S开发框架
.NET Core JWT Token 介绍|C/S开发框架
OAuth 2.0 access_token / refresh_token 详解-C/S开发框架
【原创】WebApi开发框架:Token生成、Token缓存原理、Token验证、令牌机制与原理
CS软件授权注册系统|WebApi服务器介绍|C/S开发框架
CSFramework.WebApi框架提供两种登录接口(PC端登录、APP登录)|C/S开发框架
.NETCore WebApi后端开发框架+达梦数据库测试报告|C/S开发框架
.NETCore WebApi框架:从appsettings.json 读取参数配置|C/S开发框架
CSFramework.WebApi后端框架Log日志配置详解
微信小程序后端框架 | C# ASP.NET服务端WebApi快速开发框架平台
WebApi快速开发框架,C# ASP.NET后端开发平台
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
