Beispiel #1
0
        public async Task <ApiResult> SignIn(Model.RequestModel.SysUserLoginModel model)
        {
            try
            {
                var data = await _sysUserServices.UserLogin(model);

                return(ApiResult.OK(data));
            }
            catch (Exception ex)
            {
                return(ApiResult.Failed(ex.Message));
            }
        }
Beispiel #2
0
        /// <summary>
        /// 用户登录
        /// </summary>
        /// <param name="model"></param>
        /// <returns></returns>
        public async Task <Model.ResponseModel.LoginUserInfo> UserLogin(Model.RequestModel.SysUserLoginModel model)
        {
            var pwd    = model.Password.EncryptMD5Encode();
            var entity = await _sysUserRepository.GetModelAsync(p => p.LoginName == model.Account && p.Password == pwd);

            if (entity == null)
            {
                throw new NullReferenceException("用户名或密码有误");
            }
            if (!entity.Status)
            {
                throw new NullReferenceException("账户已被禁用");
            }

            var exp_time = DateTime.Now.AddHours(_config.GetValue <double>("Jwt:TokenExpires")).ToTimeStamp();

            var responseModel = new Model.ResponseModel.LoginUserInfo()
            {
                LoginName   = entity.LoginName,
                UserName    = entity.UserName,
                FailureTime = exp_time,
            };

            if (_config.GetValue <bool>("Jwt:IsEnabled"))
            {
                var jsonData = JsonHelper.Serialize(responseModel);
                responseModel.Token = _jwtService.GenerateToken(new JwtTokenObject()
                {
                    exp       = exp_time,
                    open_id   = entity.UserId,
                    json_data = jsonData,
                });
            }
            else
            {
                responseModel.Token = entity.LoginName; //使用登录名做token,方便开发环境下开发
            }
            return(responseModel);
        }