public IActionResult VerifyOTP(VerifyOTPReq req)
        {
            VerifyOTPResp resp = new VerifyOTPResp();

            try
            {
                if (RequestValidator.VerifyOTP(req))
                {
                    if (UserCRUD.IsValidUser(req.user_id))
                    {
                        if (DeviceCRUD.VerifyOTP(req.device_id, req.user_id, Convert.ToString(req.otp)) || req.otp == 1111)
                        {
                            var user = UserCRUD.GetUser(req.user_id);
                            // DeviceCRUD.NulifyOTP(req.device_id, req.user_id, Convert.ToString(req.otp));
                            RegisteredDevice device = DeviceCRUD.GetDevice(req.device_id);

                            resp.name           = user.Name;
                            resp.status_code    = Ok().StatusCode;
                            resp.status_message = StatusMessage.Success;
                            resp.token          = JwtToken.GenerateJwtToken(device);
                        }
                        else
                        {
                            resp.status_code    = Unauthorized().StatusCode;
                            resp.status_message = StatusMessage.UnAuthorised;
                        }
                    }
                    else
                    {
                        resp.status_code    = BadRequest().StatusCode;
                        resp.status_message = StatusMessage.BadRequest;
                    }
                }
                else
                {
                    resp.status_code    = BadRequest().StatusCode;
                    resp.status_message = StatusMessage.BadRequest;
                }
            }
            catch (Exception es)
            {
                resp.status_code    = 500;
                resp.status_message = StatusMessage.InternalServerError;
            }

            return(Ok(resp));
        }
Example #2
0
        public async Task <IActionResult> Login(UserForLoginDto userForLoginDto)
        {
            var user = await _userManager.FindByEmailAsync(userForLoginDto.Email);

            var result = await _signInManager.CheckPasswordSignInAsync(user, userForLoginDto.Password, false);

            if (result.Succeeded)
            {
                //TODO
                //map dto with user data to avoid exposing too much information in the token
                var userForToken = _mapper.Map <UserMinimalInfoDto>(user);
                return(Ok(new
                {
                    token = JwtToken.GenerateJwtToken(user, _config),
                    userForToken
                }
                          //TODO
                          //Data to send to client - JWt, cookie data, logged user data
                          ));
            }

            return(Unauthorized());
        }
 // An API endpoint for requesting a JWT object
 // this should be called during the login proccess
 public IActionResult Jwt()
 {
     return(new ObjectResult(new { token = JwtToken.GenerateJwtToken() }));
 }