private async Task <UserRegLoginResp> RegOrLogin(UserRegLoginReq req, bool isReg, string apiUrl) { var stateRes = CheckLoginModelState(req, isReg); if (!stateRes.IsSuccess()) { return(stateRes.ConvertToResult <UserRegLoginResp>()); } var loginRes = await ApiUtil.PostApi <UserRegLoginResp>(apiUrl, req); if (!loginRes.IsSuccess()) { return(loginRes); } Response.Cookies.Append(GlobalKeysUtil.UserCookieName, loginRes.token, new CookieOptions() { HttpOnly = true, Expires = DateTimeOffset.Now.AddDays(30) }); loginRes.return_url = Request.Cookies[GlobalKeysUtil.UserReturnUrlCookieName] ?? "/"; return(loginRes); }
/// <summary> /// 正常登录时,验证实体参数 /// </summary> /// <param name="req"></param> /// <param name="isReg">是否是注册</param> /// <returns></returns> private ResultMo CheckLoginModelState(UserRegLoginReq req, bool isReg) { if (!ModelState.IsValid) { return(new ResultMo(ResultTypes.ParaError, GetVolidMessage())); } if (!Enum.IsDefined(typeof(RegLoginType), req.type)) { return(new ResultMo(ResultTypes.ParaError, "未知的账号类型!")); } if (req.type == RegLoginType.MobileCode || (req.type == RegLoginType.Mobile && isReg)) { if (string.IsNullOrEmpty(req.pass_code)) { return(new ResultMo(ResultTypes.ParaError, "验证码不能为空!")); } } var validator = new DataTypeAttribute( req.type == RegLoginType.Mobile ? DataType.PhoneNumber : DataType.EmailAddress); return(!validator.IsValid(req.name) ? new ResultMo(ResultTypes.ParaError, "请输入正确的手机或邮箱!") : new ResultMo()); }
public async Task <UserRegLoginResp> UserLogin([FromBody] UserRegLoginReq req) { var stateRes = CheckLoginModelState(req); if (stateRes.IsSuccess()) { return(stateRes.ConvertToResult <UserRegLoginResp>()); } var userRes = await service.LoginUser(req.name, req.pass_word, req.type); return(GenerateUserToken(userRes)); }
public async Task<IActionResult> Login(UserRegLoginReq req) { var stateRes = CheckLoginModelState(req); if (!stateRes.IsSuccess()) return Json(stateRes); var loginRes =await ApiUtil.PostApi<UserRepLoginResp>("/user/login", req); if (loginRes.IsSuccess()) { } return Json(loginRes); }
/// <summary> /// 正常登录时,验证实体参数 /// </summary> /// <param name="req"></param> /// <returns></returns> private ResultMo CheckLoginModelState(UserRegLoginReq req) { if (!ModelState.IsValid) return new ResultMo(ResultTypes.ParaError, GetVolidMessage()); if (!Enum.IsDefined(typeof(RegLoginType), req.type)) return new ResultMo(ResultTypes.ParaError, "未知的账号类型!"); var validator = new DataTypeAttribute( req.type == RegLoginType.Mobile ? DataType.PhoneNumber : DataType.EmailAddress); return !validator.IsValid(req.name) ? new ResultMo(ResultTypes.ParaError, "请输入正确的手机或邮箱!") : new ResultMo(); }
public async Task <IActionResult> Login(UserRegLoginReq req) { var loginRes = await RegOrLogin(req, false, "portal/userlogin"); return(Json(loginRes)); }
public async Task <IActionResult> Registe(UserRegLoginReq req) { var regRes = await RegOrLogin(req, false, "portal/userregiste"); return(Json(regRes)); }