最近学习了下.net core使用Jwt的授权验证,写个笔记加深印象。.net core中已经集成了Jwt,只需要添加引用即可,比较简单。使用的.net core2.2版本
没有详细解释Jwt相关信息,只做实际应用,网上有很多相关资料自行查阅
1、创建一个.net core api项目,以下为项目结构
2、项目创建好之后新建一个名为Models的文件夹(存放接口返回统一格式数据的类)
ResponseResult类
public class ResponseResult
{
[JsonProperty("code", Order = 1)]
public HttpStatusCode Code {
get; set; }
[JsonProperty("message", Order = 2)]
public string Message {
get; set; }
}
public class ResponseResult<T> : ResponseResult where T : class
{
[JsonProperty("data", Order = 3)]
public T Data {
get; set; }
}
TokenResponseResult类
public class TokenResponseResult
{
public string UserId {
get; set; }
public string Token {
get; set; }
}
3、在配置文件appsettings.Development.json中添加以下配置信息
"JwtSettings": {
"Issuer": "http://localhost:44327",//域名
"Audience": "http://localhost:44327",
"SecretKey": "kzFdzMSWBhIM1HHKm8HowWUQivpQEbqp" //可以去网上自己生成key
}
4、在Startup.cs中添加以下代码
在ConfigureServices方法中注册Jwt中间件
//添加jwt验证
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
.AddJwtBearer(options =>
{
options.RequireHttpsMetadata = false;
options.SaveToken = true;
options.TokenValidationParameters = new TokenValidationParameters
{
/*
* Claims (Payload)
Claims 部分包含了一些跟这个 token 有关的重要信息。 JWT 标准规定了一些字段,下面节选一些字段: