123456789101112131415161718192021222324252627282930313233343536 |
-
- using System;
- using System.Text;
- using System.Security.Claims;
- using System.IdentityModel.Tokens.Jwt;
- using Microsoft.IdentityModel.Tokens;
- using Admin.Core.Common.Configs;
- namespace Admin.Core.Common.Auth
- {
- public class UserToken : IUserToken
- {
- private readonly JwtConfig _jwtConfig;
- public UserToken(JwtConfig jwtConfig)
- {
- _jwtConfig = jwtConfig;
- }
- public string Build(Claim[] claims)
- {
- var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_jwtConfig.SecurityKey));
- var signingCredentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256);
- var token = new JwtSecurityToken(
- issuer: _jwtConfig.Issuer,
- audience: _jwtConfig.Audience,
- claims: claims,
- notBefore: DateTime.Now,
- expires: DateTime.Now.AddMinutes(_jwtConfig.Expires),
- signingCredentials: signingCredentials
- );
- return new JwtSecurityTokenHandler().WriteToken(token);
- }
- }
- }
|