public async Task <ActionResult> ValidateLoginInfo([FromBody] LoginInfoInput body) { var key = !string.IsNullOrWhiteSpace(body.CustomApiKey) ? body.CustomApiKey : OpenSubtitlesPlugin.ApiKey; var response = await OpenSubtitlesHandler.OpenSubtitles.LogInAsync(body.Username, body.Password, key, CancellationToken.None).ConfigureAwait(false); if (!response.Ok) { var msg = $"{response.Code}{(response.Body.Length < 150 ? $" - {response.Body}" : string.Empty)}"; if (response.Body.Contains("message\":", StringComparison.Ordinal)) { var err = JsonSerializer.Deserialize <ErrorResponse>(response.Body); if (err != null) { msg = string.Equals(err.Message, "You cannot consume this service", StringComparison.Ordinal) ? "Invalid API key provided" : err.Message; } } return(Unauthorized(new { Message = msg })); } if (response.Data != null) { await OpenSubtitlesHandler.OpenSubtitles.LogOutAsync(response.Data, key, CancellationToken.None).ConfigureAwait(false); } return(Ok(new { Downloads = response.Data?.User?.AllowedDownloads ?? 0 })); }
public UserDto Login(LoginInfoInput loginInfoInput) { var user = _userRepository.GetAll().FirstOrDefault(p => p.Name == loginInfoInput.UserNameOrEmail || p.Email == loginInfoInput.UserNameOrEmail); if (user == null) { throw new Exception("用户名或邮箱错误"); } user.ValidateDisabled(); user.ValidatePassword(loginInfoInput.Password); user.UpdateLoginSuccess(); return(user.ToDto()); }
public UserDto Login(LoginInfoInput loginInfoInput) { var user = _userRepository.GetAll().FirstOrDefault(p => p.Name == loginInfoInput.UserNameOrEmail || p.Email == loginInfoInput.UserNameOrEmail); if (user == null) throw new Exception("用户名或邮箱错误"); user.ValidateDisabled(); user.ValidatePassword(loginInfoInput.Password); user.UpdateLoginSuccess(); return user.ToDto(); }