26 lines
827 B
C#
Raw Permalink Normal View History

using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using System.Text;
using AGSS.Models.Entities;
using asg_form;
using Microsoft.IdentityModel.Tokens;
namespace AGSS.Utilities;
public class Jwt
{
public string BuildToken(IEnumerable<Claim> claims, JWTOptions options)
{
DateTime expires = DateTime.Now.AddSeconds(options.ExpireSeconds);
byte[] keyBytes = Encoding.UTF8.GetBytes(options.SigningKey);
var secKey = new SymmetricSecurityKey(keyBytes);
var credentials = new SigningCredentials(secKey,
SecurityAlgorithms.HmacSha256Signature);
var tokenDescriptor = new JwtSecurityToken(expires: expires,
signingCredentials: credentials, claims: claims);
return new JwtSecurityTokenHandler().WriteToken(tokenDescriptor);
}
}