using HaBookCms.Admin.Models; using HaBookCms.Common.CryptHelper; using HaBookCms.Core.Dtos; using HaBookCms.Jwt.Model; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Security.Claims; using System.Threading.Tasks; namespace HaBookCms.Admin.Controllers.Sys { /// /// 控制器所有接口 /// [Authorize(Policy = "RequireAdmin")] [Produces("application/json")] [Route("api/Users")] public class SysUsersController : Controller { PermissionRequirement _requirement; /// /// 获取JWT的方法 3.0 /// /// /// /// [HttpPost] [Route("checkLogin")] [EnableCors("any")] [AllowAnonymous] public async Task checkLogin(TicketInfo ticketInfo) { string jwtStr = string.Empty; bool suc = false; // var user = await sysUserInfoServices.GetUserRoleNameStr(name, pass); var user = "aaa"; if (user != null) { //如果是基于用户的授权策略,这里要添加用户;如果是基于角色的授权策略,这里要添加角色 var claims = new List { new Claim(ClaimTypes.Name, ticketInfo.teamModelId), new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) }; claims.AddRange(user.Split(',').Select(s => new Claim(ClaimTypes.Role, s))); //用户标识 var identity = new ClaimsIdentity(JwtBearerDefaults.AuthenticationScheme); identity.AddClaims(claims); var token = JwtToken.BuildJwtToken(claims.ToArray()); return new JsonResult(token); } else { return new JsonResult(new { Status = false, Message = "认证失败" }); } } private int CheckTicketInfo(TicketInfo ticketInfo) { if (ticketInfo != null &&!string.IsNullOrEmpty(ticketInfo.sign) && !string.IsNullOrEmpty(ticketInfo.ticket) && !string.IsNullOrEmpty(ticketInfo.teamModelId)){ string md5info = Md5Crypt.GetMd5String(ticketInfo.ticket); if (md5info.Equals(ticketInfo.sign)) { } } return 0; } } }