private async Task <UserRegLoginResp> RegOrLogin(CodeLoginReq req, string apiUrl) { var stateRes = CheckLoginModelState(req); if (!stateRes.IsSuccess()) { return(stateRes.ConvertToResultInherit <UserRegLoginResp>()); } var loginRes = await RestApiUtil.PostCoreApi <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> /// <returns></returns> private ResultMo CheckLoginModelState(CodeLoginReq req) { if (!ModelState.IsValid) { return(new ResultMo(ResultTypes.ParaError, GetVolidMessage())); } if (!Enum.IsDefined(typeof(RegLoginType), req.type)) { return(new ResultMo(ResultTypes.ParaError, "未知的账号类型!")); } if (string.IsNullOrEmpty(req.passcode) && string.IsNullOrEmpty(req.password)) { 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 Task <UserRegLoginResp> AdminCodeLogin([FromBody] CodeLoginReq req) { return(AdminLogin(req, "/b/portal/codeadminlogin")); }
public async Task <UserRegLoginResp> CodeLogin(CodeLoginReq req) { var regRes = await RegOrLogin(req, "/member/portal/CodeLogin"); return(regRes); }