/// <summary> /// 登录处理 /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task <LoginResultModel> Handle(PhoneLoginModel model) { var resultModel = new LoginResultModel { LoginMode = LoginMode.Phone, Phone = model.Phone, Platform = model.Platform, LoginTime = DateTime.Now, AccountType = model.AccountType }; //解析租户编号 await ResolveTenant(resultModel); //检测 var checkResult = await Check(model, resultModel); if (checkResult.Successful) { resultModel.Success = true; //更新认证信息并返回登录结果 await UpdateAuthInfo(resultModel, model); } else { resultModel.Success = false; resultModel.Error = checkResult.Msg; } //记录日志 await SaveLog(resultModel); return(resultModel); }
/// <summary> /// 登录处理 /// </summary> private async Task<ResultModel<LoginResultModel>> Handle(PhoneLoginModel model, LoginLogEntity log) { var result = new ResultModel<LoginResultModel>(); var config = _configProvider.Get<AuthConfig>(); if (!config.LoginMode.Phone) return result.Failed("不允许使用手机号登录的方式"); //检测图片验证码 var verifyCodeCheckResult = _verifyCodeProvider.Check(model); if (!verifyCodeCheckResult.Successful) return result.Failed(verifyCodeCheckResult.Msg); //检测手机验证码 var verifyResult = await _phoneVerifyCodeProvider.Verify(model.Phone, model.Code, model.AreaCode); if (!verifyResult.Successful) return result.Failed(verifyResult.Msg); //查询账户 var account = await _repository.GetByPhone(model.Phone, model.AccountType); if (account == null) return result.Failed("账户不存在"); if (log != null) log.AccountId = account.Id; //检测账户 var accountCheckResult = account.Check(); if (!accountCheckResult.Successful) return result.Failed(accountCheckResult.Msg); //更新认证信息并返回登录结果 var resultModel = await UpdateAuthInfo(account, model, config); return resultModel != null ? result.Success(resultModel) : result.Failed(); }
public async Task <IResultModel> Login(PhoneLoginModel model) { model.IP = _ipHelper.IP; model.UserAgent = _ipHelper.UserAgent; var result = await _service.Login(model); return(LoginHandle(result)); }
/// <summary> /// 登录处理 /// </summary> /// <param name="model"></param> /// <returns></returns> public async Task<ResultModel<LoginResultModel>> Handle(PhoneLoginModel model) { var log = CreateLog(model); if (log == null) return await Handle(model, null); log.LoginMode = Domain.LoginLog.LoginMode.Phone; log.Phone = model.Phone; var result = await Handle(model, log); await SaveLog(log, result); return result; }
/// <summary> /// 登录处理 /// </summary> private async Task <IResultModel> Check(PhoneLoginModel model, LoginResultModel resultModel) { var config = _configProvider.Get <AuthConfig>(); if (!config.LoginMode.Phone) { return(ResultModel.Failed("不允许使用手机号登录的方式")); } //检测图片验证码 var verifyCodeCheckResult = _verifyCodeProvider.Check(model); if (!verifyCodeCheckResult.Successful) { return(ResultModel.Failed(verifyCodeCheckResult.Msg)); } //检测手机验证码 var verifyResult = await _phoneVerifyCodeProvider.Verify(resultModel.Phone, model.Code, model.AreaCode); if (!verifyResult.Successful) { return(ResultModel.Failed(verifyResult.Msg)); } //查询账户 var account = await _repository.GetByPhone(model.Phone, model.AccountType, resultModel.TenantId); if (account == null) { return(ResultModel.Failed("账户不存在")); } //设置账户编号和名称 resultModel.AccountId = account.Id; resultModel.Name = account.Name; //检测账户 var accountCheckResult = account.Check(); if (!accountCheckResult.Successful) { return(ResultModel.Failed(accountCheckResult.Msg)); } //更新认证信息并返回登录结果 return(ResultModel.Success()); }
public Task <ResultModel <LoginResultModel> > Login(PhoneLoginModel model) { return(_phoneLoginHandler.Handle(model)); }