public async Task Login(AuthLoginInput input = null) { if (input == null && _appConfig.VarifyCode.Enable) { var res = await _authService.GetVerifyCodeAsync("") as IResponseOutput <AuthGetVerifyCodeOutput>; var verifyCodeKey = string.Format(CacheKey.VerifyCodeKey, res.Data.Key); var verifyCode = await _cache.GetAsync(verifyCodeKey); input = new AuthLoginInput() { UserName = "******", Password = "******", VerifyCodeKey = res.Data.Key, VerifyCode = verifyCode }; } //Client.DefaultRequestHeaders.Connection.Add("keep-alive"); Client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36"); var result = await Client.PostAsync($"/api/admin/auth/login", GetHttpContent(input)); var content = await result.Content.ReadAsStringAsync(); var jObject = JsonConvert.DeserializeObject <JObject>(content); Client.DefaultRequestHeaders.Add("Authorization", $"Bearer {jObject["data"]["token"]}"); }
public Task <ItemResult <AccountInfo> > LoginAsync(AuthLoginInput input) { var request = new RestRequest(Method.POST); request.Resource = "auth/login"; request.AddJsonBody(input); return(this.Sdk.ExecuteAsync <ItemResult <AccountInfo> >(request)); }
public async Task <IActionResult> Login([FromBody] AuthLoginInput loginModel) { var sw = new Stopwatch(); sw.Start(); var res = await _authService.LoginAsync(loginModel); // var res = await _authApi.Login(loginModel); sw.Stop(); #region var loginLogAddInput = new LoginLogAddInput() { CreatedUserName = loginModel.UserName, ElapsedMilliseconds = sw.ElapsedMilliseconds, Status = res.Success, Msg = res.Msg }; ResultModel <AuthLoginOutput> output = null; if (res.Success) { output = res as ResultModel <AuthLoginOutput>; var _user = output.Data; loginLogAddInput.CreatedUserId = _user.Id; loginLogAddInput.NickName = _user.NickName; } // await _loginLogService.AddAsync(loginLogAddInput); #endregion if (!res.Success) { return(Json(res)); } var userData = output.Data; var claims = new[] { new Claim(ClaimAttributes.UserId, userData.Id.ToString()), new Claim(ClaimAttributes.UserName, userData.UserName), new Claim(ClaimAttributes.UserNickName, userData.NickName) }; var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme); ClaimsPrincipal user = new ClaimsPrincipal(claimsIdentity); await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, user); await HttpContext.SignInAsync( CookieAuthenticationDefaults.AuthenticationScheme, user, new AuthenticationProperties() { IsPersistent = true, ExpiresUtc = DateTimeOffset.UtcNow.AddMinutes(60), AllowRefresh = true }); return(Json(res)); }
public async Task<IResponseOutput> Login(AuthLoginInput input) { var sw = new Stopwatch(); sw.Start(); var res = await _authService.LoginAsync(input); sw.Stop(); if (!res.Success) return !res.Success ? res : GetToken(output: null); var output = (res as ResponseOutput<AuthLoginOutput>); return !res.Success ? res : GetToken(output); }
public async Task <IResponseOutput> Login(AuthLoginInput input) { var sw = new Stopwatch(); sw.Start(); var res = (await _authService.LoginAsync(input)) as IResponseOutput; sw.Stop(); #region 添加登录日志 var loginLogAddInput = new LoginLogAddInput() { CreatedUserName = input.UserName, ElapsedMilliseconds = sw.ElapsedMilliseconds, Status = res.Success, Msg = res.Msg }; AuthLoginOutput user = null; if (res.Success) { user = (res as IResponseOutput <AuthLoginOutput>).Data; loginLogAddInput.CreatedUserId = user.Id; loginLogAddInput.RealName = user.Name; } await _loginLogService.AddAsync(loginLogAddInput); #endregion if (!res.Success) { return(res); } #region 生成token信息 var token = _userToken.Build(new[] { new Claim(ClaimAttributes.UserId, user.Id.ToString()), new Claim(ClaimAttributes.UserName, user.UserName), new Claim(ClaimAttributes.UserRealName, user.Name) }); #endregion return(ResponseOutput.Ok(new { token })); }
public async Task <AccountInfo> Login(string user, string password) { HavenSDK sdk = this.GetHavenSDK(true, null); AuthLoginInput input = new AuthLoginInput() { user = user, password = password }; AccountInfo result = await sdk.Auth.LoginAsync(input).DemoUnPack(); if (result != null) { _account = result; } return(result); }
public async Task <IResponseOutput> LoginAsync(AuthLoginInput input) { var user = (await _userRepository.GetAsync(a => a.UserName == input.UserName)); if (!(user?.Id > 0)) { return(ResponseOutput.NotOk("账号输入有误!", 3)); } #region 解密 if (input.PasswordKey.NotNull()) { var passwordEncryptKey = string.Format(CacheKey.PassWordEncryptKey, input.PasswordKey); var existsPasswordKey = await _cache.ExistsAsync(passwordEncryptKey); if (existsPasswordKey) { var secretKey = await _cache.GetAsync(passwordEncryptKey); if (secretKey.IsNull()) { return(ResponseOutput.NotOk("解密失败!", 1)); } input.Password = DesEncrypt.Decrypt(input.Password, secretKey); await _cache.DelAsync(passwordEncryptKey); } else { return(ResponseOutput.NotOk("解密失败!", 1)); } } #endregion var password = Md5Encrypt.Encrypt32(input.Password); if (user.Password != password) { return(ResponseOutput.NotOk("密码输入有误!", 4)); } var authLoginOutput = _mapper.Map <AuthLoginOutput>(user); return(ResponseOutput.Ok(authLoginOutput)); }
public async Task <IResponseOutput> Login(AuthLoginInput input) { var sw = new Stopwatch(); sw.Start(); var res = await _authService.LoginAsync(input); sw.Stop(); #region 添加登录日志 var loginLogAddInput = new LoginLogAddInput() { CreatedUserName = input.UserName, ElapsedMilliseconds = sw.ElapsedMilliseconds, Status = res.Success, Msg = res.Msg }; ResponseOutput <AuthLoginOutput> output = null; if (res.Success) { output = (res as ResponseOutput <AuthLoginOutput>); var user = output.Data; loginLogAddInput.CreatedUserId = user.Id; loginLogAddInput.NickName = user.NickName; loginLogAddInput.TenantId = user.TenantId; } await _loginLogService.AddAsync(loginLogAddInput); #endregion 添加登录日志 if (!res.Success) { return(res); } return(GetToken(output)); }
public object Login(AuthLoginInput input) { return(base.ExecuteFunction <object>("Login", delegate() { Account account = this.API.Direct.Accounts.GetForValidPassword(input.user, input.password); if (account == null) { return Http400("Invalid password/user combination"); } sdk.Responses.AccountInfo data = account.ToInfoModel(); FormsAuthentication.SetAuthCookie(account.account_id.ToString(), input.persist); ItemResult <sdk.Responses.AccountInfo> result = new ItemResult <sdk.Responses.AccountInfo>() { item = data, success = true }; return base.Http200(result); })); }
public async Task <IResponseOutput> LoginAsync(AuthLoginInput input) { #region 验证码校验 var verifyCodeKey = string.Format(CacheKey.VerifyCodeKey, input.VerifyCodeKey); var exists = await _cache.ExistsAsync(verifyCodeKey); if (exists) { var verifyCode = await _cache.GetAsync(verifyCodeKey); if (string.IsNullOrEmpty(verifyCode)) { return(ResponseOutput.NotOk("验证码已过期!", 1)); } if (verifyCode.ToLower() != input.VerifyCode.ToLower()) { return(ResponseOutput.NotOk("验证码输入有误!", 2)); } await _cache.DelAsync(verifyCodeKey); } else { return(ResponseOutput.NotOk("验证码已过期!", 1)); } #endregion var user = (await _userRepository.Select.Where(a => a.UserName == input.UserName).ToOneAsync()); if (!(user?.Id > 0)) { return(ResponseOutput.NotOk("账号输入有误!", 3)); } #region 解密 if (input.PasswordKey.NotNull()) { var passwordEncryptKey = string.Format(CacheKey.PassWordEncryptKey, input.PasswordKey); var existsPasswordKey = await _cache.ExistsAsync(passwordEncryptKey); if (existsPasswordKey) { var secretKey = await _cache.GetAsync(passwordEncryptKey); if (passwordEncryptKey.IsNull()) { return(ResponseOutput.NotOk("解密失败!", 1)); } input.Password = DesEncrypt.Decrypt(input.Password, secretKey); await _cache.DelAsync(passwordEncryptKey); } else { return(ResponseOutput.NotOk("解密失败!", 1)); } } #endregion var password = MD5Encrypt.Encrypt32(input.Password); if (user.Password != password) { return(ResponseOutput.NotOk("密码输入有误!", 4)); } //生成token信息 var claims = new[] { new Claim(ClaimAttributes.UserId, user.Id.ToString()), new Claim(ClaimAttributes.UserName, user.UserName), new Claim(ClaimAttributes.UserRealName, user.Name) }; var token = _userToken.Build(claims); return(ResponseOutput.Ok(new { token })); }
public async Task <IResponseOutput> LoginAsync(AuthLoginInput input) { #region 验证码校验 if (_appConfig.VarifyCode.Enabled) { var verifyCodeKey = string.Format(CacheKey.VerifyCodeKey, input.VerifyCodeKey); var exists = await _cache.ExistsAsync(verifyCodeKey); if (exists) { var verifyCode = await _cache.GetAsync(verifyCodeKey); if (string.IsNullOrEmpty(verifyCode)) { return(ResponseOutput.NotOk("验证码已过期!", 1)); } if (verifyCode.ToLower() != input.VerifyCode.ToLower()) { return(ResponseOutput.NotOk("验证码输入有误!", 2)); } await _cache.DelAsync(verifyCodeKey); } else { return(ResponseOutput.NotOk("验证码已过期!", 1)); } } #endregion var user = (await _userRepository.GetAsync(a => a.UserName == input.UserName)); if (!(user?.Id > 0)) { return(ResponseOutput.NotOk("账号输入有误!", 3)); } #region 解密 if (input.PasswordKey.NotNull()) { var passwordEncryptKey = string.Format(CacheKey.PassWordEncryptKey, input.PasswordKey); var existsPasswordKey = await _cache.ExistsAsync(passwordEncryptKey); if (existsPasswordKey) { var secretKey = await _cache.GetAsync(passwordEncryptKey); if (secretKey.IsNull()) { return(ResponseOutput.NotOk("解密失败!", 1)); } input.Password = DesEncrypt.Decrypt(input.Password, secretKey); await _cache.DelAsync(passwordEncryptKey); } else { return(ResponseOutput.NotOk("解密失败!", 1)); } } #endregion var password = MD5Encrypt.Encrypt32(input.Password); if (user.Password != password) { return(ResponseOutput.NotOk("密码输入有误!", 4)); } var authLoginOutput = _mapper.Map <AuthLoginOutput>(user); return(ResponseOutput.Ok(authLoginOutput)); }
public async Task <IResultModel> LoginAsync(AuthLoginInput input) { #region 验证码校验 //if (_appConfig.VarifyCode.Enable) //{ // var verifyCodeKey = string.Format(CacheKey.VerifyCodeKey, input.VerifyCodeKey); // var exists = await _cache.ExistsAsync(verifyCodeKey); // if (exists) // { // var verifyCode = await _cache.GetAsync(verifyCodeKey); // if (string.IsNullOrEmpty(verifyCode)) // { // return ResponseOutput.NotOk("验证码已过期!", 1); // } // if (verifyCode.ToLower() != input.VerifyCode.ToLower()) // { // return ResponseOutput.NotOk("验证码输入有误!", 2); // } // await _cache.DelAsync(verifyCodeKey); // } // else // { // return ResponseOutput.NotOk("验证码已过期!", 1); // } //} #endregion string conditions = "where UserName=@UserName "; var user = await _userRepository.GetAsync(conditions, new { input.UserName }); if (!(user?.Id > 0)) { return(ResultModel.Failed("账号输入有误!", 3)); } #region 解密 //if (input.PasswordKey.NotNull()) //{ // var passwordEncryptKey = string.Format(CacheKey.PassWordEncryptKey, input.PasswordKey); // var existsPasswordKey = await _cache.ExistsAsync(passwordEncryptKey); // if (existsPasswordKey) // { // var secretKey = await _cache.GetAsync(passwordEncryptKey); // if (secretKey.IsNull()) // { // return ResponseOutput.NotOk("解密失败!", 1); // } // input.Password = DesEncrypt.Decrypt(input.Password, secretKey); // await _cache.DelAsync(passwordEncryptKey); // } // else // { // return ResponseOutput.NotOk("解密失败!", 1); // } //} #endregion var password = MD5Encrypt.Encrypt32(input.Password); if (user.Password != password) { return(ResultModel.Failed("密码输入有误!", 4)); } var authLoginOutput = _mapper.Map <AuthLoginOutput>(user); //await _cache.SetAsync(CacheKey.UserAuthLogin, authLoginOutput, TimeSpan.FromMinutes(5)); return(ResultModel.Success(authLoginOutput)); }
public async Task <IResponseOutput> LoginAsync(AuthLoginInput input) { #region 验证码校验 if (_appConfig.VarifyCode.Enable) { var verifyCodeKey = string.Format(CacheKey.VerifyCodeKey, input.VerifyCodeKey); var exists = await Cache.ExistsAsync(verifyCodeKey); if (exists) { var verifyCode = await Cache.GetAsync(verifyCodeKey); if (string.IsNullOrEmpty(verifyCode)) { return(ResponseOutput.NotOk("验证码已过期!", 1)); } if (verifyCode.ToLower() != input.VerifyCode.ToLower()) { return(ResponseOutput.NotOk("验证码输入有误!", 2)); } await Cache.DelAsync(verifyCodeKey); } else { return(ResponseOutput.NotOk("验证码已过期!", 1)); } } #endregion 验证码校验 UserEntity user = null; user = await _userRepository.Select.DisableGlobalFilter("Tenant").Where(a => a.UserName == input.UserName).ToOneAsync(); //user = (await _userRepository.GetAsync(a => a.UserName == input.UserName)); if (!(user?.Id > 0)) { return(ResponseOutput.NotOk("账号输入有误!", 3)); } #region 解密 if (input.PasswordKey.NotNull()) { var passwordEncryptKey = string.Format(CacheKey.PassWordEncryptKey, input.PasswordKey); var existsPasswordKey = await Cache.ExistsAsync(passwordEncryptKey); if (existsPasswordKey) { var secretKey = await Cache.GetAsync(passwordEncryptKey); if (secretKey.IsNull()) { return(ResponseOutput.NotOk("解密失败!", 1)); } input.Password = DesEncrypt.Decrypt(input.Password, secretKey); await Cache.DelAsync(passwordEncryptKey); } else { return(ResponseOutput.NotOk("解密失败!", 1)); } } #endregion 解密 var password = MD5Encrypt.Encrypt32(input.Password); if (user.Password != password) { return(ResponseOutput.NotOk("密码输入有误!", 4)); } var authLoginOutput = Mapper.Map <AuthLoginOutput>(user); if (_appConfig.Tenant) { var tenant = await _tenantRepository.Select.DisableGlobalFilter("Tenant").WhereDynamic(user.TenantId).ToOneAsync(a => new { a.TenantType, a.DataIsolationType }); authLoginOutput.TenantType = tenant.TenantType; authLoginOutput.DataIsolationType = tenant.DataIsolationType; } //登录清空用户缓存 await Cache.DelAsync(string.Format(CacheKey.UserInfo, user.Id)); return(ResponseOutput.Ok(authLoginOutput)); }
public async Task <IResponseOutput> Login(AuthLoginInput input) { return(await _authServices.LoginAsync(input)); }
/// <summary> /// Does Not Throw Exceptions. /// </summary> public virtual Task <ItemResult <AccountInfo> > LoginAsyncSafe(AuthLoginInput info, Action <bool> onProcessing = null) { return(base.ExecuteFunctionAsync("LoginAsyncSafe", async delegate() { ItemResult <AccountInfo> result = new ItemResult <AccountInfo>() { success = false }; bool isOutdated = false; try { ItemResult <AccountInfo> loginResult = null; this.LogOff(false, false); loginResult = await this.PostItemUnSafeAsync(onProcessing, async delegate() { StencilSDK client = this.GetSDK(false); return await client.Auth.LoginAsync(info); }); if (loginResult.IsSuccess()) { result = loginResult; } else { result.success = false; result.meta = loginResult.meta; result.message = loginResult.GetMessage(); } } catch (Exception ex) { ex = ex.FirstNonAggregateException(); base.LogError(ex, "LoginAsyncSafe"); result.success = false; isOutdated = this.IsOutdated(ex); if (isOutdated) { this.Outdated(string.Empty); } result.message = ex.Message; EndpointException endpointException = ex as EndpointException; if (endpointException != null) { result.meta = ((int)endpointException.StatusCode).ToString(); } } if (result.IsSuccess()) { this.CacheHost.CachedUserSet(result.item); this.CurrentAccount = result.item; this.UserCacheClear(); AppPreferences prefs = new AppPreferences(); this.CacheHost.PersistentDataSet(false, CACHE_FILENAME_APP_PREFS, prefs); this.AppPreferences = prefs; this.ViewPlatform.OnLoggedOn(); } else { this.LogOff(!isOutdated, false); if (string.IsNullOrEmpty(result.message)) { result.message = "Could not log in to your account."; } } return result; })); }