Token Api

C# .net 8 Token Api

using Microsoft.IdentityModel.Tokens;
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using System.Text;

namespace ProjectName.Services
{
  // Token
  public class TokenService
  {
    // External parameter files
    var jwtKey = "12345678901234567890123456789012"; // KEY
    var ValidTimeMinutes = 120; // Time valid

    // Token
    public string GetToken(string userId, string userName)
    {
      // KEY
      var securityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtKey));

      // Provide information
      var Claims = new List<Claim>()
      {
        new ("userId",userId),
        new ("userName",userName),
      };

      // Time valid
      DateTime tokenTime = new();
      tokenTime = DateTime.Now.AddMinutes(ValidTimeMinutes);

      // token data
      var jwt = new JwtSecurityToken
      (
        issuer: 'Tree.com',
        audience: 'staff',
        claims: Claims,
        expires: tokenTime,
        signingCredentials: new SigningCredentials(securityKey, SecurityAlgorithms.HmacSha256) // Certificate
      );

      // Generate token ex: eyJhbGciOi.eyJ1c2VySW.mTMP71Xcds
      var token = new JwtSecurityTokenHandler().WriteToken(jwt);
      return token;
    }
  }
}

我只是一棵樹