Example #1
0
        public async Task <IHttpActionResult> Login(LoginBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest());
            }

            var user = UserManager.FindByName(model.Name);
            // This doesn't count login failures towards account lockout
            // To enable password failures to trigger account lockout, change to shouldLockout: true
            var result = await SignInManager.PasswordSignInAsync(model.Name, model.Password, false, shouldLockout : false);

            switch (result)
            {
            case SignInStatus.Success:
                string token = AuthenticationModule.GenerateToken(model.Name, user.Role);
                return(Ok(token));

            //return Ok(user);
            //case SignInStatus.LockedOut:
            //    return NotFound() ;
            //case SignInStatus.RequiresVerification:
            //    return RedirectToAction("SendCode", new { ReturnUrl = returnUrl, RememberMe });
            case SignInStatus.Failure:
                return(BadRequest());

            default:
                ModelState.AddModelError("", "Invalid login attempt.");
                return(BadRequest());
            }
        }
 public TokenResponse GenerateToken([FromBody] User user)
 {
     if (ModelState.IsValid)
     {
         return(new TokenResponse
         {
             Status = "Success",
             JwtToken = AuthenticationModule.GenerateToken(user.UserName),
             Message = "Token generated successfully."
         });
     }
     return(null);
 }