public async Task <IActionResult> UserLoginApi([FromBody] UserLoginMap userLogin) { CustomStatusCode code; var user = await _userRepository.UserLogin(userLogin.Account, userLogin.Password); if (user == null) { _logger.LogInformation("登陆失败"); code = new CustomStatusCode { Status = "404", Message = "账号或者密码错误" }; return(StatusCode(404, code)); } TokenModelJWT tokenModel = new TokenModelJWT { Id = user.Id, Role = user.Role.ToString() }; var jwtStr = _jwtHelper.IssueJWT(tokenModel); _logger.LogInformation($"用户 {user.Id}登陆成功"); code = new CustomStatusCode { Status = "200", Message = $"用户 {user.Id} 登陆成功", Data = ("Bearer " + jwtStr) }; return(StatusCode(200, code)); }
public IActionResult RetrievePasswordApi(string account) { CustomStatusCode code; var exit = _userRepository.RetrievePassword(account); if (exit == null) { _logger.LogInformation($"{account} 账号不存在"); code = new CustomStatusCode { Status = "404", Message = $"{account} 账号不存在" }; return(StatusCode(404, code)); } var password = exit.Password; TokenModelJWT token = new TokenModelJWT { Id = exit.Id, Role = exit.Role.ToString() }; var jwtStr = _jwtHelper.IssueJWT(token); _logger.LogInformation($"{account} 账号验证成功,返回密码与token"); code = new CustomStatusCode { Status = "200", Message = $"{account} 账号验证成功,返回密码与token", Data = new { pwd = password, token = jwtStr } }; return(StatusCode(200, code)); }
public async Task <object> GetJWTStr(string name, string pass) { string jwtStr = string.Empty; bool suc = false; //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作 //这里直接写死了 var user = await sysUserInfoServices.GetUserRoleNameStr(name, pass); if (user != null) { TokenModelJWT tokenModel = new TokenModelJWT(); tokenModel.Uid = 1; tokenModel.Role = user; jwtStr = JwtHelper.IssueJWT(tokenModel); suc = true; } else { jwtStr = "login fail!!!"; } return(Ok(new { success = suc, token = jwtStr })); }
public ActionResult <string> EXPORTYG() { var context = _accessor.HttpContext; var tokenHeader = context.Request.Cookies["szhlcode"].ToString().Replace("Bearer ", ""); TokenModelJWT tokenModel = JwtHelper.SerializeJWT(tokenHeader); JH_Auth_UserB.UserInfo UserInfo = new JH_Auth_UserB().GetUserInfo(10334, tokenModel.UserName); JObject JsonData = new JObject(); string P1 = context.Request.Query["P1"].ToString(); string P2 = context.Request.Query["P2"].ToString(); string pagecount = context.Request.Query["pagecount"].ToString(); JsonData.Add("P1", P1); JsonData.Add("P2", P2); JsonData.Add("pagecount", pagecount); new AuthManage().GETUSERBYCODENEWPAGE(JsonData, Model, P1, P2, UserInfo); DataTable dt = Model.Result; string sqlCol = "ID,UserOrder|序号,DeptName|部门,RoomCode|房间号,UserName|账号,UserRealName|姓名,Sex|性别,mobphone|手机,QQ|QQ,weixinCard|微信,mailbox|邮箱,telphone|座机,ROLENAME|职务,Usersign|职责,UserGW|岗位,IDCard|身份证,HomeAddress|家庭住址"; DataTable dtResult = dt.DelTableCol(sqlCol); HSSFWorkbook workbook = new HSSFWorkbook(); workbook = CommonHelp.ExportToExcel(dtResult); var stream = new NPOIMemoryStream(); workbook.Write(stream); stream.Flush(); stream.Position = 0; return(File(stream, "application/ms-excel", string.Format("{0}.xls", "员工_导出文件_" + DateTime.Now.Ticks))); }
public async Task <object> GetJWTToken(string name, string pass) { string jwtStr = string.Empty; bool suc = false; //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作 //这里直接写死了 if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(pass)) { return(new JsonResult(new { Status = false, message = "用户名或密码不能为空" })); } TokenModelJWT tokenModel = new TokenModelJWT(); tokenModel.Uid = 1; tokenModel.Role = "Admin"; jwtStr = JwtHelper.IssueJWT(tokenModel); suc = true; return(Ok(new { success = suc, token = jwtStr })); }
public async Task <IActionResult> Initialize() { SimpleMessage <UserInfoDto> message = new SimpleMessage <UserInfoDto>(); try { //进行token验证 TokenModelJWT tokenModel = TokenJwtAop.GetToken(HttpContext); //获取用户信息 UserInfoDto userInfo = _context.UserInfo.Where(s => s.ID == tokenModel.id).Select(s => new UserInfoDto { username = s.UserName, email = s.Email, bolgurl = s.BlogUrl, lovesentence = s.LoveSentence, headurl = s.HeadUrl, }).FirstOrDefault(); message.data = userInfo; } catch (Exception ex) { message.InfoMessage(ex.Message); } return(Content(message.ToJson())); }
public IActionResult GetJWTStr([FromBody] LoginViewModel loginViewModel) { if (ModelState.IsValid) { SysUser user = new SysUser(); //await _userserver.CheckUser(loginViewModel.User, loginViewModel.Password); //判断用户名密码是否正确,如果不正确返回Token !(loginViewModel.User=="avery"&& loginViewModel.Password=="123") if (user == null) { return(Json(new OperationResult(ResultType.Error, "账号或者密码错误"))); } else { var Ip = HttpContext.GetClientIP(); TokenModelJWT tokenModel = new TokenModelJWT() { Uid = user.Id, Role = "Admin", }; try { string jwtstr = JwtHelper.IssueJWT(tokenModel); return(Ok(new { token = jwtstr })); } catch (Exception ex) { return(Json("" + ex.Message)); } } } return(BadRequest()); }
public JsonResult RefreshToken([FromForm] string token) { ResponseResult result = new ResponseResult(); if (string.IsNullOrEmpty(token)) { result.Code = ResponseResultMessageDefine.ParaError; result.Errors.Add(ResponseResultMessageDefine.ParaErrorMessage); } else { TokenModelJWT tokenModel = JwtHelper.DerializeJWT(token); if (tokenModel.Uid > 0 && tokenModel.ExpDate > new DateTimeOffset(DateTime.Now).ToUnixTimeSeconds()) { result.Data = JwtHelper.SerializeJWT(tokenModel); } else { result.Code = ResponseResultMessageDefine.OpLost; result.Errors.Add(ResponseResultMessageDefine.OpLostMessage); } } return(Json(result)); }
public async Task <object> GetJWTStrForNuxt(string name, string pass) { string jwtStr = string.Empty; bool suc = false; //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作 //这里直接写死了 if (name == "admins" && pass == "admins") { TokenModelJWT tokenModel = new TokenModelJWT(); tokenModel.Uid = 1; tokenModel.Role = "Admin"; jwtStr = JwtHelper.IssueJWT(tokenModel); suc = true; } else { jwtStr = "login fail!!!"; } var result = new { data = new { success = suc, token = jwtStr } }; var data = new { success = suc, data = new { success = suc, token = jwtStr } }; return(data); }
public ActionResult <ResponseModel <LoginModel> > GetJWTToken(string acc, string pws) { try { var _user = HttpContext.User; string jwtStr = string.Empty; bool suc = false; string tempToken = $"{acc}|{pws}|{DateTime.Now}"; this.TokenReflash(tempToken); //TODO 後面串聯DB取得帳號驗證資料與使用者相關資料 #region 範例(模擬資料庫) if (string.IsNullOrEmpty(acc) || string.IsNullOrEmpty(pws)) { return(new JsonResult(new { Status = false, message = "密碼不可為空值" })); } TokenModelJWT tokenModel = new TokenModelJWT(); tokenModel.Uid = 1; if (acc.ToUpper() != "TEST") { tokenModel.Role = "Client"; } else { tokenModel.Role = "Admin"; } tokenModel.Temp = tempToken; jwtStr = JwtHelper.IssueJWT(tokenModel); suc = true; #endregion return(new ResponseModel <LoginModel>() { Message = "", StatsuCode = 200, Data = new LoginModel() { success = suc, token = jwtStr } }); } catch (Exception ex) { return(new ResponseModel <LoginModel>() { Message = "發生不可知錯誤", StatsuCode = 200 }); } }
public JsonResult Login(long id = 1, string sub = "Admin") { TokenModelJWT tokenModel = new TokenModelJWT(); tokenModel.Uid = id; tokenModel.Role = sub; string jwtStr = JwtHelper.IssueJWT(tokenModel); return(Json(jwtStr)); }
public JsonResult GetJWTStr(long id = 1, string sub = "Admin") { //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作 TokenModelJWT tokenModelJWT = new TokenModelJWT(); tokenModelJWT.Id = id; tokenModelJWT.Role = sub; string jwtStr = JwtHelper.IssueJWT(tokenModelJWT); return(Json(jwtStr)); }
public JsonResult GetJWTStr(long id = 1, string sub = "Admin") { var tokenModel = new TokenModelJWT(); tokenModel.Uid = id; tokenModel.Role = sub; var jwtStr = JwtHelper.IssueJWT(tokenModel); return(new JsonResult(jwtStr)); }
public async Task <IActionResult> Register(UserRegisterDto dto) { SimpleMessage <string> message = new SimpleMessage <string>(); try { if (dto == null) { return(NotFound()); } UserInfo userInfo = await _context.UserInfo.Where(s => s.Email == dto.Email).AsNoTracking().FirstOrDefaultAsync(); if (userInfo != null) { throw new Exception("邮箱已经注册"); } if (userInfo != null && userInfo.UserName == dto.UserName) { throw new Exception("用户名被使用"); } //添加 userInfo = new UserInfo(); userInfo.UserName = dto.UserName; userInfo.Email = dto.Email; userInfo.PassWord = dto.PassWord; userInfo.PassKey = Guid.NewGuid().ToString(); userInfo.PassWord = Encryption.MD5Hash(dto.PassWord + "." + userInfo.PassKey); userInfo.BlogUrl = dto.BlogUrl; userInfo.LoveSentence = dto.LoveSentence; userInfo.HeadUrl = dto.HeadUrl; userInfo.CreateTime = DateTime.Now; userInfo.LastErrTime = DateTime.Now; userInfo.Role = "用户"; //注册 _context.Add(userInfo); await _context.SaveChangesAsync(); //添加生成token TokenModelJWT tokenModel = new TokenModelJWT(); tokenModel.id = userInfo.ID; tokenModel.Role = userInfo.Role; tokenModel.Work = "用户"; message.data = JwtHelper.IssueJWT(tokenModel); } catch (Exception ex) { message.InfoMessage(ex.Message); } return(Content(message.ToJson())); }
public void GetJsonp(string callBack, long id = 1, string sub = "Admin", int expiresSliding = 30, int expiresAbsoulute = 30) { TokenModelJWT tokenModelJWT = new TokenModelJWT(); tokenModelJWT.Id = id; tokenModelJWT.Role = sub; string jwtStr = JwtHelper.IssueJWT(tokenModelJWT); string response = string.Format("\"value\":\"{0}\"", jwtStr); string call = callBack + "({" + response + "})"; Response.WriteAsync(call); }
public ActionResult <string> GetJWTStr(long id = 1, string sub = "Admin") { //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作 TokenModelJWT tokenModel = new TokenModelJWT(); tokenModel.Uid = id; tokenModel.Role = sub; string jwtStr = JwtHelper.IssueJWT(tokenModel); return(jwtStr); }
public JsonResult GetJWTStr(long id, string sub) { //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作 TokenModelJWT tokenModel = new TokenModelJWT(); tokenModel.Uid = id; tokenModel.Role = sub; // 获取token string jwtStr = JwtHelper.IssueJWT(tokenModel); return(Json(jwtStr)); }
public JsonResult GetJwtStr(long id = 1, string sub = "Admin") { TokenModelJWT tm = new TokenModelJWT { Uid = id, Role = sub }; var jwtStr = JwtHelper.IssueJWT(tm); var result = Json(jwtStr); return(result); }
public async Task <object> GetJWTToken(string name, string pass) { string jwtStr = string.Empty; bool suc = false; //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作 //这里直接写死了 if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(pass)) { return(new JsonResult(new { Status = false, message = "用户名或密码不能为空" })); } var user = new IdentityUser { UserName = name, Id = Guid.NewGuid().ToString() }; var count = await _userManager.FindByIdAsync(user.Id); if (count == null) { var result = await _userManager.CreateAsync(user); if (result.Succeeded) { await _signManager.SignInAsync(user, false); TokenModelJWT tokenModel = new TokenModelJWT(); tokenModel.Uid = long.Parse(user.Id); tokenModel.Role = "Admin"; jwtStr = JWTHelper.IssueJWT(tokenModel); suc = true; return(Ok(new { success = suc, token = jwtStr })); } } return(new JsonResult(new { Status = false, message = "用户已经存在" })); }
[AllowAnonymous]//对获取token得方法加允许匿名标注//不受授权控制,任何人都可访问 public async Task <string> Token([FromBody] LoginViewModel loginViewModel) { if (ModelState.IsValid) { SysUser user = await _userserver.CheckUser(loginViewModel.User, loginViewModel.Password); //判断用户名密码是否正确,如果不正确返回Token !(loginViewModel.User=="avery"&& loginViewModel.Password=="123") if (user == null) { return("账号或者密码错误"); } else { #region MyRegion var Ip = HttpContext.GetClientIP(); //var claim = new Claim[] //{ // new Claim(ClaimTypes.Name,user.Account), // new Claim(ClaimTypes.Role,user.Account), //}; ////设置对称秘钥 //var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(_jwtSettings.SecretKey)); ////生成签名证书(秘钥,加密算法) //var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); ////生成token [注意]需要nuget添加Microsoft.AspNetCore.Authentication.JwtBearer包,并引用System.IdentityModel.Tokens.Jwt命名空间 //var token = new JwtSecurityToken(_jwtSettings.Issuer, _jwtSettings.Audience, claim, DateTime.Now, DateTime.Now.AddDays(1), creds); #endregion TokenModelJWT tokenModel = new TokenModelJWT() { Uid = user.Id, Role = "Admin", }; var token = JwtHelper.IssueJWT(tokenModel); try { //var ss= DateTime.Now; //_redisCacheManager.Set("Id", new { Id = 12 },ss.TimeOfDay); //_log.Add("创建TOken", "用户登陆", Ip,EnumTypes.其他分类); return(token); } catch (Exception ex) { throw; } } } return("账号或者密码错误"); }
/// <summary> /// 颁发JWT字符串 /// </summary> /// <param name="model"></param> /// <returns></returns> public static string IssueJwt(TokenModelJWT model) { var dateTime = DateTime.UtcNow; var claims = new Claim[] { new Claim(JwtRegisteredClaimNames.Jti, model.Uid.ToString()), new Claim("Role", model.Role), new Claim(JwtRegisteredClaimNames.Iat, dateTime.ToString(), ClaimValueTypes.Integer64) }; var key = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(secretKey)); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var jwt = new JwtSecurityToken(issuer: "Blog.Core", claims: claims, expires: dateTime.AddHours(2), signingCredentials: creds); var jwtHander = new JwtSecurityTokenHandler(); var token = jwtHander.WriteToken(jwt); return(token); }
public JsonResult GetJWTStr(Guid id, Guid gId, string nickName = "匿名", string sub = "Client") { //这里就是用户登陆以后,通过数据库去调取数据,分配权限的操作 TokenModelJWT tokenModel = new TokenModelJWT(); tokenModel.Uid = id; tokenModel.Gid = gId; tokenModel.Role = sub; string jwtStr = JwtHelper.IssueJWT(tokenModel); return(Json(new { Username = nickName, Token = jwtStr })); }
public async Task <object> GetJWTToken(string acc, string pws) { var _user = HttpContext.User; string jwtStr = string.Empty; bool suc = false; string tempToken = $"{acc}|{pws}|{DateTime.Now}"; this.TokenReflash(tempToken); //TODO 後面串聯DB取得帳號驗證資料與使用者相關資料 if (string.IsNullOrEmpty(acc) || string.IsNullOrEmpty(pws)) { return(new JsonResult(new { Status = false, message = "密碼不可為空值" })); } TokenModelJWT tokenModel = new TokenModelJWT(); tokenModel.Uid = 1; if (acc.ToUpper() != "TEST") { tokenModel.Role = "Client"; } else { tokenModel.Role = "Admin"; } tokenModel.Temp = tempToken; jwtStr = JwtHelper.IssueJWT(tokenModel); suc = true; return(Ok(new { success = suc, token = jwtStr })); }
public ActionResult <string> ExeAction(string Action, Object PostData) { Model.Action = Action; var context = _accessor.HttpContext; var tokenHeader = context.Request.Headers["Authorization"].ToString().Replace("Bearer ", ""); TokenModelJWT tokenModel = JwtHelper.SerializeJWT(tokenHeader); if (new DateTimeOffset(DateTime.Now.AddMinutes(5)).ToUnixTimeSeconds() > tokenModel.Exp) { //需要更新Token Model.uptoken = JwtHelper.CreateJWT(tokenModel.UserName, "Admin"); } JH_Auth_UserB.UserInfo UserInfo = CacheHelp.Get(tokenModel.UserName) as JH_Auth_UserB.UserInfo; if (UserInfo == null) { UserInfo = new JH_Auth_UserB().GetUserInfo(10334, tokenModel.UserName); CacheHelp.Set(tokenModel.UserName, UserInfo); } try { JObject JsonData = JObject.FromObject(PostData); string P1 = JsonData["P1"] == null ? "" : JsonData["P1"].ToString(); string P2 = JsonData["P2"] == null ? "" : JsonData["P2"].ToString(); // 1.Load(命名空间名称),GetType(命名空间.类名) Type type = Assembly.Load("QJY.API").GetType("QJY.API." + Action.Split('_')[0].ToUpper() + "Manage"); //2.GetMethod(需要调用的方法名称) MethodInfo method = type.GetMethod(Action.Split('_')[1].ToUpper()); // 3.调用的实例化方法(非静态方法)需要创建类型的一个实例 object obj = Activator.CreateInstance(type); //4.方法需要传入的参数 object[] parameters = new object[] { JsonData, Model, P1, P2, UserInfo }; method.Invoke(obj, parameters); new JH_Auth_LogB().InsertLog(Model.Action, "--调用接口", "", UserInfo.User.UserName, UserInfo.User.UserRealName, UserInfo.QYinfo.ComId, ""); } catch (Exception ex) { Model.ErrorMsg = Action + "接口调用失败,请检查日志"; Model.Result = ex.ToString(); new JH_Auth_LogB().InsertLog(Action, Model.ErrorMsg + ex.StackTrace.ToString(), ex.ToString(), tokenModel.UserName, "", 0, ""); } return(ControHelp.CovJson(Model)); }
public ActionResult <string> WXINIT() { try { var context = _accessor.HttpContext; #region 获取Code Model.ErrorMsg = ""; string P1 = context.Request.Query["P1"].ToString(); string P2 = context.Request.Query["P2"].ToString(); string szhlcode = context.Request.Query["szhlcode"].ToString(); TokenModelJWT tokenModel = JwtHelper.SerializeJWT(szhlcode); if (tokenModel.UserName == null) { Model.ErrorMsg = "NOCODE"; } else { JH_Auth_UserB.UserInfo UserInfo = new JH_Auth_UserB().GetUserInfo(10334, tokenModel.UserName); DataTable dtUsers = new JH_Auth_UserB().GetDTByCommand(" SELECT UserName,UserRealName,mobphone FROM JH_Auth_User where ComId='" + UserInfo.User.ComId + "'"); //获取选择用户需要的HTML和转化用户名需要的json数据 Model.Result = dtUsers; JH_Auth_Common url = new JH_Auth_CommonB().GetEntity(p => p.ModelCode == P1 && p.MenuCode == P2); if (url != null) { Model.Result1 = url.Url1; } Model.Result2 = UserInfo.User.UserName + "," + UserInfo.User.UserRealName + "," + UserInfo.User.BranchCode + "," + UserInfo.BranchInfo.DeptName; Model.Result3 = UserInfo.QYinfo.FileServerUrl; Model.Result4 = UserInfo.QYinfo.QYCode; } #endregion } catch (Exception ex) { Model.ErrorMsg = "WXINIT接口调用失败,请检查日志"; Model.Result = ex.ToString(); CommonHelp.WriteLOG(ex.ToString()); } return(ControHelp.CovJson(Model)); }
/// <summary> /// /// </summary> /// <param name="context"></param> /// <returns></returns> public Task Invoke(HttpContext context) { //检测是否包含'Authorization'请求头 if (!context.Request.Headers.ContainsKey("Authorization")) { return(_next(context)); } var token = context.Request.Headers["Authorization"].ToString(); TokenModelJWT tm = JwtHelper.SerializeJWT(token);//序列化token,获取授权 var claims = new List <Claim>(); var claim = new Claim(ClaimTypes.Role, tm.Role); claims.Add(claim); var identity = new ClaimsIdentity(claims); var principal = new ClaimsPrincipal(identity); return(_next(context)); }
/// <summary> /// /// </summary> /// <param name="httpContext"></param> /// <returns></returns> public Task Invoke(HttpContext httpContext) { //检测是否包含Authorization请求头 if (!httpContext.Request.Headers.ContainsKey("Authorization")) { return(_next(httpContext)); } var tokenHeader = httpContext.Request.Headers["Authorization"].ToString(); TokenModelJWT tm = JwtHelper.SerializeJWT(tokenHeader); //授权 var claimList = new List <Claim>(); var claim = new Claim(ClaimTypes.Role, tm.Role); claimList.Add(claim); var identity = new ClaimsIdentity(claimList); var principal = new ClaimsPrincipal(identity); httpContext.User = principal; return(_next(httpContext)); }
/// <summary> /// /// </summary> /// <param name="httpContext"></param> /// <returns></returns> public Task Invoke(HttpContext httpContext) { PreProceed(httpContext); //检测是否包含'Authorization'请求头 if (!httpContext.Request.Headers.ContainsKey("Authorization")) { PostProceed(httpContext); return(_next(httpContext)); } //var tokenHeader = httpContext.Request.Headers["Authorization"].ToString(); var tokenHeader = httpContext.Request.Headers["Authorization"].ToString().Replace("Bearer ", ""); try { if (tokenHeader.Length >= 128) { TokenModelJWT tm = JWTHelper.SerializeJWT(tokenHeader); //授权 var claimList = new List <Claim>(); var claim = new Claim(ClaimTypes.Role, tm.Role); claimList.Add(claim); var identity = new ClaimsIdentity(claimList); var principal = new ClaimsPrincipal(identity); httpContext.User = principal; } } catch (Exception e) { Console.WriteLine($"{DateTime.Now} middleware wrong:{e.Message}"); } PostProceed(httpContext); return(_next(httpContext)); }
public ActionResult <string> ISEXIST() { try { var context = _accessor.HttpContext; Model.ErrorMsg = "获取Code错误,请重试"; string szhlcode = context.Request.Query["szhlcode"].ToString(); TokenModelJWT tokenModel = JwtHelper.SerializeJWT(szhlcode); if (tokenModel.UserName == null) { Model.Result = "NOCODE"; } } catch (Exception ex) { Model.ErrorMsg = "ISEXIST接口调用失败,请检查日志"; Model.Result = ex.ToString(); CommonHelp.WriteLOG(ex.ToString()); } return(ControHelp.CovJson(Model)); }
public async Task <IActionResult> Login(UserLoginDto dto) { //dto = new UserLoginDto { Email = "*****@*****.**", PassWord = "******" }; SimpleMessage <string> message = new SimpleMessage <string>(); try { if (dto == null) { return(NotFound()); } //找到邮箱 UserInfo student = await _context.UserInfo.Where(s => s.Email == dto.Email).AsNoTracking() .FirstOrDefaultAsync(); if (student == null) { throw new Exception("未查找到用户信息"); } //匹配密码 if (student.PassWord != Encryption.MD5Hash(dto.PassWord + "." + student.PassKey)) { throw new Exception("用户名密码错误"); } //添加生成token TokenModelJWT tokenModel = new TokenModelJWT(); tokenModel.id = student.ID; tokenModel.Role = student.Role; tokenModel.Work = "人员"; message.data = JwtHelper.IssueJWT(tokenModel); } catch (Exception ex) { message.InfoMessage(ex.Message); } return(Content(message.ToJson())); }