コード例 #1
0
        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 }));
        }
コード例 #2
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());
        }
コード例 #3
0
ファイル: UserService.cs プロジェクト: jianxuanbing/BeiDream
 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();
 }