TokenController.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. using DopInterfacePlatform.Interface;
  2. using Microsoft.AspNetCore.Authorization;
  3. using Microsoft.AspNetCore.Http;
  4. using Microsoft.AspNetCore.Mvc;
  5. using Microsoft.Extensions.Configuration;
  6. using Microsoft.Extensions.Options;
  7. using System.Security.Claims;
  8. namespace DopInterfacePlatform.Controllers
  9. {
  10. [Route("api/[controller]")]
  11. [ApiController]
  12. public class TokenController : ControllerBase
  13. {
  14. public IJwtService _jwtService { set; get; }
  15. private IConfiguration _configuration;
  16. public TokenController(IJwtService jwtService, IConfiguration configuration)
  17. {
  18. _jwtService = jwtService;
  19. _configuration = configuration;
  20. }
  21. [AllowAnonymous]
  22. [HttpGet]
  23. [Route("token")]
  24. public string GetToken()
  25. {
  26. JwtOptions jwtOptions=new JwtOptions();
  27. jwtOptions.ExpireSeconds = Convert.ToInt32(_configuration["JWT:ExpireSeconds"]);
  28. jwtOptions.Issuer = _configuration["JWT:Issuer"];
  29. jwtOptions.Audience = _configuration["JWT:Audience"];
  30. jwtOptions.Key = _configuration["JWT:Key"];
  31. List<Claim> claims = new List<Claim>();
  32. claims.Add(new Claim(ClaimTypes.Name, "用户1"));
  33. claims.Add(new Claim(ClaimTypes.Role, "超级管理员"));
  34. return _jwtService.BuildToken(claims, jwtOptions);
  35. }
  36. }
  37. }