12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182 |
- using HaBookCms.Admin.Models;
- using HaBookCms.Common.CryptHelper;
- 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
- {
- /// <summary>
- /// 控制器所有接口
- /// </summary>
- [Authorize(Policy = "RequireAdmin")]
- [Produces("application/json")]
- [Route("api/Users")]
- public class UsersController : Controller
- {
- PermissionRequirement _requirement;
- /// <summary>
- /// 获取JWT的方法 3.0
- /// </summary>
- /// <param name="name"></param>
- /// <param name="pass"></param>
- /// <returns></returns>
- [HttpPost]
- [Route("checkLogin")]
- [EnableCors("any")]
- [AllowAnonymous]
- public async Task<object> 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<Claim> {
- 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(), _requirement);
- 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;
- }
- }
- }
|