Example #1
0
        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);
        }
Example #2
0
        /// <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());
        }
Example #3
0
 public Task <UserRegLoginResp> AdminCodeLogin([FromBody] CodeLoginReq req)
 {
     return(AdminLogin(req, "/b/portal/codeadminlogin"));
 }
Example #4
0
        public async Task <UserRegLoginResp> CodeLogin(CodeLoginReq req)
        {
            var regRes = await RegOrLogin(req, "/member/portal/CodeLogin");

            return(regRes);
        }