示例#1
0
        public async Task <IActionResult> TokenAsync([FromBody] UserLoginModelRequest loginModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            try
            {
                var userId = await _accountService.LogisTask(loginModel);

                var userToken = _jwtTokenService.GenerateJwtTokenTask(userId);

                return(StatusCode(200, JsonConvert.SerializeObject(new JwtSecurityTokenHandler().WriteToken(userToken))));
            }
            catch (UserNotFoundException ex)
            {
                return(StatusCode(404, ex.Message));
            }
            catch (Exception ex)
            {
                _logger.Error(ex);
                return(StatusCode(500, "Internal server error"));
            }
        }
示例#2
0
        public async Task <string> LogisTask(UserLoginModelRequest loginModel)
        {
            using (var contex = _serviceProvider.GetService <DatabaseContext>())
            {
                var user = await contex.Users
                           .AsNoTracking()
                           .FirstOrDefaultAsync(x => x.Email == loginModel.Login && x.Password == _cryptoProvider.Encoding(loginModel.Password));

                if (user == null)
                {
                    throw new UserNotFoundException();
                }

                return(user.Id);
            }
        }