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;
}
}
}
我只是一棵樹