using DopInterfacePlatform.Interface; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Options; using System.Security.Claims; namespace DopInterfacePlatform.Controllers { [Route("api/[controller]")] [ApiController] public class TokenController : ControllerBase { public IJwtService _jwtService { set; get; } private IConfiguration _configuration; public TokenController(IJwtService jwtService, IConfiguration configuration) { _jwtService = jwtService; _configuration = configuration; } [AllowAnonymous] [HttpGet] [Route("token")] public string GetToken() { JwtOptions jwtOptions=new JwtOptions(); jwtOptions.ExpireSeconds = Convert.ToInt32(_configuration["JWT:ExpireSeconds"]); jwtOptions.Issuer = _configuration["JWT:Issuer"]; jwtOptions.Audience = _configuration["JWT:Audience"]; jwtOptions.Key = _configuration["JWT:Key"]; List claims = new List(); claims.Add(new Claim(ClaimTypes.Name, "用户1")); claims.Add(new Claim(ClaimTypes.Role, "超级管理员")); return _jwtService.BuildToken(claims, jwtOptions); } } }