using System; using System.Collections.Generic; using System.IdentityModel.Tokens.Jwt; using System.Security.Claims; using System.Text; namespace Api.SignToken { public class JwtToken { public static dynamic BuildJwtToken(Claim[] claims, PermissionRequirement permissionRequirement) { var now = DateTime.UtcNow; var jwt = new JwtSecurityToken( issuer: permissionRequirement.Issuer,//签发者 audience: permissionRequirement.Audience,//订阅者,使用人 claims: claims, notBefore: now,//在此时间之前不能被接收处理 expires: now.Add(permissionRequirement.Expiration),//超期时间 signingCredentials: permissionRequirement.SigningCredentials ); var encodedJwt = new JwtSecurityTokenHandler().WriteToken(jwt); return encodedJwt; } } }