using System; using System.IdentityModel.Tokens.Jwt; using System.Security.Claims; using System.Text; using GxPress.Auth; using GxPress.Result; using Microsoft.IdentityModel.Tokens; namespace GxPress.Api.Tools { public static class TokenHelper { /// /// 生成token /// /// /// /// public static TokenResult BuildToken(JwtOptions jwtOptions, Claim[] claims) { var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(jwtOptions.Key)); var credentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var expires = DateTime.Now.Add(jwtOptions.Expires); var token = new JwtSecurityToken( jwtOptions.Issuer, jwtOptions.Audience, claims, expires: expires, signingCredentials: credentials); var tokenStr = new JwtSecurityTokenHandler().WriteToken(token); return new TokenResult { Type = "Bearer", Token = tokenStr, Expires = expires }; } } }