net core 3.1JWT用户权限认证(三)携带token进行认证
直接上案列
在startup中的ConfigureServices添加以下代码
//注册jwt
services.ResgionJwt(Configuration);
这里是IServiceCollection的扩展方法
/// <summary>
/// 注册JWT
/// </summary>
/// <param name="services"></param>
public static void ResgionJwt(this IServiceCollection services, IConfiguration Configuration)
{
services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options =>
{
var secretByte = Encoding.UTF8.GetBytes(Configuration["Authentication:SecretKey"]);//获取配置文件私钥
options.TokenValidationParameters = new TokenValidationParameters()
{
ValidateIssuer = true,//开启验证Issuer
ValidIssuer = Configuration["Authentication:Issuer"],
ValidateAudience = true,//开启验证Audience
ValidAudience = Configuration["Authentication:Audience"],
ValidateLifetime = true,//开启过期时间
IssuerSigningKey = new SymmetricSecurityKey(secretByte)//私钥加密
};
});
}
在startup中的Configure添加以下代码
注意这两个长得很像昂,注意顺序
app.UseAuthentication();//开启认证
app.UseAuthorization();//开启授权
最后在控制器上面增加 [Authorize]特性
[HttpGet]
[Authorize]
public string GetString()
{
return "11111";
}
代码亲测有效,可以用postman自己娶调试