Ejemplo n.º 1
0
        public async Task <IActionResult> BasicLogin([FromBody] LoginViewModel model)
        {
            #region Parameters validation

            // Parameter hasn't been initialized.
            if (model == null)
            {
                model = new LoginViewModel();
                TryValidateModel(model);
            }

            // Invalid modelstate.
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            #endregion

            // Verify the captcha.
            var bIsCaptchaValid =
                await _captchaService.IsCaptchaValidAsync(model.CaptchaCode, null, CancellationToken.None);

            if (!bIsCaptchaValid)
            {
                return(StatusCode((int)HttpStatusCode.Forbidden, new ApiResponse(HttpMessages.CaptchaInvalid)));
            }

            var user = await _userDomain.LoginAsync(model);

            // Initialize jwt token.
            var jsonWebToken = _userDomain.GenerateJwt(user);

            return(Ok(jsonWebToken));
        }