/// <summary> /// 根据用户名或手机号查询用户信息 /// </summary> /// <param name="name">用户名或手机号</param> /// <returns></returns> public static AU_User GetUserInfoByNameOrPhone(string name) { AU_User userModel = SqlDapperHelper.ReturnT <AU_User>(get_userinfo_by_name_or_phone, new { Phone = name, Name = name }); return(userModel); }
/// <summary> /// @ming 登录操作 /// </summary> /// <param name="loginInfo">登录实体</param> /// <returns></returns> public IActionResult LoginAct([FromForm] Login loginInfo) { var result = new Response <Login>() { code = Convert.ToInt32(StatusEnum.Failed) }; result.url = "/Login/Index"; try { #region 数据验证 (后期可改为模型验证) //非空 if (String.IsNullOrWhiteSpace(loginInfo.Phone) && String.IsNullOrWhiteSpace(loginInfo.Name)) { result.msg = "请输入用户名或密码"; return(Ok(result)); } if (String.IsNullOrWhiteSpace(loginInfo.Password)) { result.msg = "请输入用户名或密码"; return(Ok(result)); } //防sql注入,后期补上 #endregion //用户名查询 //用户名查询用户信息 AU_User userModel = UserService.GetUserInfoByNameOrPhone(loginInfo.Name); if (userModel == null) { result.msg = "账号或密码错误"; return(Ok(result)); } var token = BaseController.EncodeText(JsonConvert.SerializeObject(userModel)); //密码判断 string passWord = Encoding.UTF8.GetString(BaseController.AESDecrypt(Convert.FromBase64String(userModel.Pwd))); passWord = passWord.Replace("\0", "").Trim(); if (passWord != loginInfo.Password) { result.msg = "账号或密码错误"; return(Ok(result)); } if (userModel.IsLogin == 1) { result.msg = "用户已登录"; return(Ok(result)); } //检查用户状态 //加密存入缓存 //// CacheHelper.SetAbsolute("token",token,15*60); //HttpContext.Response.Cookies.Delete("tokens"); RedisManager.redisHelp.SetValue(userModel.Name, JsonConvert.SerializeObject(userModel), 20); HttpContext.Response.Cookies.Append("tokens", token); result.code = Convert.ToInt32(StatusEnum.Succeed); result.url = "/Login/Index"; result.msg = "登录成功!"; //是否需要返回登录成功后的实体 return(Ok(result)); } catch (Exception ex) { result.code = Convert.ToInt32(StatusEnum.Error); result.msg = "内部请求出错";//内部请求出错 LogHelp.Error(ex, ex.Message); } return(Ok(result)); }