26 lines
827 B
C#
26 lines
827 B
C#
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);
|
|
}
|
|
} |