Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        /// <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());
        }
Ejemplo n.º 3
0
        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));
        }
Ejemplo n.º 4
0
 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);
 }
Ejemplo n.º 5
0
        /// <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();
        }
Ejemplo n.º 6
0
        public async Task <IActionResult> Login(UserRegLoginReq req)
        {
            var loginRes = await RegOrLogin(req, false, "portal/userlogin");

            return(Json(loginRes));
        }
Ejemplo n.º 7
0
        public async Task <IActionResult> Registe(UserRegLoginReq req)
        {
            var regRes = await RegOrLogin(req, false, "portal/userregiste");

            return(Json(regRes));
        }