SysUsersController.cs 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. using HaBookCms.Admin.Models;
  2. using HaBookCms.Common.CryptHelper;
  3. using HaBookCms.Core.Dtos;
  4. using HaBookCms.Jwt.Model;
  5. using Microsoft.AspNetCore.Authentication.JwtBearer;
  6. using Microsoft.AspNetCore.Authorization;
  7. using Microsoft.AspNetCore.Cors;
  8. using Microsoft.AspNetCore.Mvc;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.Linq;
  12. using System.Security.Claims;
  13. using System.Threading.Tasks;
  14. namespace HaBookCms.Admin.Controllers.Sys
  15. {
  16. /// <summary>
  17. /// 控制器所有接口
  18. /// </summary>
  19. [Authorize(Policy = "RequireAdmin")]
  20. [Produces("application/json")]
  21. [Route("api/Users")]
  22. public class SysUsersController : Controller
  23. {
  24. PermissionRequirement _requirement;
  25. /// <summary>
  26. /// 获取JWT的方法 3.0
  27. /// </summary>
  28. /// <param name="name"></param>
  29. /// <param name="pass"></param>
  30. /// <returns></returns>
  31. [HttpPost]
  32. [Route("checkLogin")]
  33. [EnableCors("any")]
  34. [AllowAnonymous]
  35. public async Task<object> checkLogin(TicketInfo ticketInfo)
  36. {
  37. string jwtStr = string.Empty;
  38. bool suc = false;
  39. // var user = await sysUserInfoServices.GetUserRoleNameStr(name, pass);
  40. var user = "aaa";
  41. if (user != null)
  42. {
  43. //如果是基于用户的授权策略,这里要添加用户;如果是基于角色的授权策略,这里要添加角色
  44. var claims = new List<Claim> {
  45. new Claim(ClaimTypes.Name, ticketInfo.teamModelId),
  46. new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()) };
  47. claims.AddRange(user.Split(',').Select(s => new Claim(ClaimTypes.Role, s)));
  48. //用户标识
  49. var identity = new ClaimsIdentity(JwtBearerDefaults.AuthenticationScheme);
  50. identity.AddClaims(claims);
  51. var token = JwtToken.BuildJwtToken(claims.ToArray());
  52. return new JsonResult(token);
  53. }
  54. else
  55. {
  56. return new JsonResult(new
  57. {
  58. Status = false,
  59. Message = "认证失败"
  60. });
  61. }
  62. }
  63. private int CheckTicketInfo(TicketInfo ticketInfo) {
  64. if (ticketInfo != null
  65. &&!string.IsNullOrEmpty(ticketInfo.sign)
  66. && !string.IsNullOrEmpty(ticketInfo.ticket)
  67. && !string.IsNullOrEmpty(ticketInfo.teamModelId)){
  68. string md5info = Md5Crypt.GetMd5String(ticketInfo.ticket);
  69. if (md5info.Equals(ticketInfo.sign))
  70. {
  71. }
  72. }
  73. return 0;
  74. }
  75. }
  76. }