using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Extensions.Caching.Memory; using StackExchange.Profiling; using WIDESEAWCS_Core; using WIDESEAWCS_Core.Authorization; using WIDESEAWCS_Core.BaseController; using WIDESEAWCS_Core.Const; using WIDESEAWCS_Core.Helper; using WIDESEAWCS_Core.HttpContextUser; using WIDESEAWCS_Core.Utilities; using WIDESEAWCS_ISystemServices; using WIDESEAWCS_Model; using WIDESEAWCS_Model.Models; namespace WIDESEAWCS_WCSServer.Controllers { [Route("api/User")] [ApiController] public class Sys_UserController : ApiBaseController { private readonly IHttpContextAccessor _httpContextAccessor; public Sys_UserController(ISys_UserService userService, IHttpContextAccessor httpContextAccessor) : base(userService) { _httpContextAccessor = httpContextAccessor; } [HttpPost, Route("login"), AllowAnonymous] public IActionResult Login([FromBody] LoginInfo loginInfo) { return Json(Service.Login(loginInfo)); } [HttpPost, Route("getCurrentUserInfo")] public WebResponseContent GetCurrentUser() { return Service.GetCurrentUserInfo(); } [HttpPost, Route("modifyPwd")] public IActionResult ModifyPwd(string oldPwd, string newPwd) { return Json(Service.ModifyPwd(oldPwd, newPwd)); } [HttpGet, Route("getVierificationCode"), AllowAnonymous] public IActionResult GetVierificationCode() { //var html = MiniProfiler.Current.RenderIncludes(_httpContextAccessor.HttpContext); string code = "1234" /*VierificationCode.RandomText()*/; var data = new { img = VierificationCode.CreateBase64Imgage(code), uuid = Guid.NewGuid() }; return Json(data); } [HttpGet, Route("SerializeJwt"), AllowAnonymous] public WebResponseContent SerializeJwt(string code) { return WebResponseContent.Instance.OK(data: JwtHelper.SerializeJwt(code)); } [HttpPost, Route("replaceToken")] public WebResponseContent ReplaceToken() { WebResponseContent responseContent = new WebResponseContent(); try { string token = App.User.GetToken(); if (string.IsNullOrEmpty(token)) { return responseContent = WebResponseContent.Instance.Error("token无效,请重新登录!"); } TokenModelJwt tokenModelJwt = new TokenModelJwt() { RoleId = App.User.RoleId, TenantId = App.User.TenantId, UserId = App.User.UserId, UserName = App.User.UserName }; string newToken = JwtHelper.IssueJwt(tokenModelJwt); return responseContent = WebResponseContent.Instance.OK(data: newToken); } catch (Exception ex) { return responseContent.Error(ex.Message); } } } }