• JWT for net 6


    01------------------appsettings.json----------------
    "JWT": {
    "SecretKey": "assdfghkldsf@123!",
    "Issuer": "2222",
    "Expires": 10,
    "Audience": "22333"
    }

    02-----------------program---------------------------
    builder.Services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(options =>
    {
    options.TokenValidationParameters = new TokenValidationParameters()
    {
    ValidateIssuer = true,
    ValidIssuer = builder.Configuration["JWT:Issuer"],
    ValidateAudience = true,
    ValidAudience = builder.Configuration["JWT:Audience"],
    ValidateLifetime = true,
    IssuerSigningKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(builder.Configuration["JWT:SecretKey"]))
    };
    });

    var app = builder.Build();

    //鉴权授权
    app.UseAuthentication();
    app.UseAuthorization();

    03------login---------------------------------
    [HttpGet]
    public string login()
    {
    // 1. 定义需要使?到的Claims
    var claims = new[]
    {
    new Claim("Id", "9527"),
    new Claim("Name", "Admin")
    };
    // 2. 从 appsettings.json 中读取SecretKey
    var secretKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_configuration["JWT:SecretKey"]));
    // 3. 选择加密算法
    var algorithm = SecurityAlgorithms.HmacSha256;
    // 4. ?成Credentials
    var signingCredentials = new SigningCredentials(secretKey, algorithm);
    // 5. 从 appsettings.json 中读取Expires
    var expires = Convert.ToDouble(_configuration["JWT:Expires"]);
    // 6. 根据以上,?成token
    var token = new JwtSecurityToken(
    _configuration["JWT:Issuer"], //Issuer
    _configuration["JWT:Audience"], //Audience
    claims, //Claims,
    DateTime.Now, //notBefore
    DateTime.Now.AddDays(expires), //expires
    signingCredentials //Credentials
    );
    // 7. 将token变为string
    var jwtToken = new JwtSecurityTokenHandler().WriteToken(token);
    return jwtToken;
    }

  • 相关阅读:
    出差(十四)确定
    出差(十三)协作
    出差(十二)现状
    出差(十一)变化
    手机的惊险一幕
    出差(十)重复
    出差(九)假象
    出差(八)了解
    出差(七)学习
    Servlet程序开发-- servlet跳转
  • 原文地址:https://www.cnblogs.com/csj007523/p/16331966.html
Copyright © 2020-2023  润新知