public async Task <MessageModel <dynamic> > TokenAssig([FromBody] LoginViewModel loginViewModel) { var FromMailAddres = Appsettings.app(new string[] { "FromMailConfig", "FromMailAddres" }); var FromMailPwd = Appsettings.app(new string[] { "FromMailConfig", "FromMailPwd" }); var ToMail = Appsettings.app(new string[] { "FromMailConfig", "ToMail" }); //await SendEmail.SendMailAvailableAsync(FromMailAddres, FromMailPwd, ToMail, $"{ DateTime.Now.ToString("yyyy-MM-dd")}Redis超出限制错误", "测试发送邮件抄送功能");//new string[] { "*****@*****.**" } var data = new MessageModel <dynamic>(); var cheke = loginViewModel.CheckModel(); if (cheke.Item1) { loginViewModel.Password = loginViewModel.Password.ToMD5(); var Ip = HttpContext.GetClientIP(); //await Console.Out.WriteAsync($"IP为【{Ip}】的客户机访问"); SysUser Info = await _userserver.CheckUser(loginViewModel.User, loginViewModel.Password); if (Info == null) { data.msg = "账号或者密码错误"; return(data); } else { try { var RoleName = await _userserver.GetUserRoleByUserId(Info.Id); var claims = new List <Claim> { new Claim(ClaimTypes.Name, Info.Name), //设置用户名称 new Claim(JwtRegisteredClaimNames.Jti, Info.Id.ToString()), //设置用户ID new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()), //设置过期时间 new Claim("Id", Info.Id.ToString()), new Claim("userName", Info.Name) }; claims.AddRange(RoleName.Split(',').Select(x => new Claim(ClaimTypes.Role, x))); //将用户角色填充到claims中 var identity = new ClaimsIdentity(JwtBearerDefaults.AuthenticationScheme); //用户标识 identity.AddClaims(claims); var token = JwtToken.BuildJwtToken(claims.ToArray(), _requirement); data.response = token; data.msg = "Token获取成功"; data.success = true; return(data); } catch (Exception ex) { data.msg = "获取角色信息失败" + ex.Message; return(data); } } } else { data.msg = cheke.Item2; return(data); } }
public async Task <MessageModel <dynamic> > TokenAssig([FromBody] LoginViewModel loginViewModel) { var data = new MessageModel <dynamic>(); var cheke = loginViewModel.CheckModel(); if (cheke.Item1) { loginViewModel.Password = loginViewModel.Password.ToMD5(); var Ip = HttpContext.GetClientIP(); //await Console.Out.WriteAsync($"IP为【{Ip}】的客户机访问"); SysUser Info = await _userserver.CheckUser(loginViewModel.User, loginViewModel.Password); #region QuartzNet定时任务 //await _schedulerCenter.AddScheduleJobAsync(new SysSchedule //{ // Name = "test1", // JobGroup = "test1group", // AssemblyName = "Uwl.QuartzNet.JobCenter", // ClassName = "Simple", // RunTimes = 0, // IntervalSecond =4, //}); //await _schedulerCenter.AddScheduleJobAsync(new SysSchedule //{ // Name = "testSimpleTwo", // JobGroup = "test1group", // AssemblyName = "Uwl.QuartzNet.JobCenter", // ClassName = "Simple", // RunTimes = 0, // IntervalSecond = 9, //}); //await _schedulerCenter.AddScheduleJobAsync(new SysSchedule //{ // Name = "testSimpleThree", // JobGroup = "test1group", // AssemblyName = "Uwl.QuartzNet.JobCenter", // ClassName = "Simple", // RunTimes = 0, // IntervalSecond = 5, //}); //_rabbitMQ.SendData("hello", Info); #endregion if (Info == null) { data.msg = "账号或者密码错误"; return(data); } else { try { //_schedulerCenter.AddScheduleJobAsync<SysSchedule>(new SysSchedule()); var RoleName = await _userserver.GetUserRoleByUserId(Info.Id); var claims = new List <Claim> { new Claim(ClaimTypes.Name, Info.Name), //设置用户名称 new Claim(JwtRegisteredClaimNames.Jti, Info.Id.ToString()), //设置用户ID new Claim(ClaimTypes.Expiration, DateTime.Now.AddSeconds(_requirement.Expiration.TotalSeconds).ToString()), //设置过期时间 new Claim("Id", Info.Id.ToString()), new Claim("userName", Info.Name) }; claims.AddRange(RoleName.Split(',').Select(x => new Claim(ClaimTypes.Role, x))); //将用户角色填充到claims中 var identity = new ClaimsIdentity(JwtBearerDefaults.AuthenticationScheme); //用户标识 identity.AddClaims(claims); var token = JwtToken.BuildJwtToken(claims.ToArray(), _requirement); data.response = token; data.msg = "Token获取成功"; data.success = true; return(data); } catch (Exception ex) { data.msg = "获取角色信息失败" + ex.Message; return(data); } } } else { data.msg = cheke.Item2; return(data); } }