Exemple #1
0
        public JsonResultModel Token(string s)
        {
            var jwt   = new JWTServices(_config);
            var token = jwt.GenerateSecurityToken(DateTime.Now.ToString());

            return(new JsonResultModel(1, "thành công", token));
        }
Exemple #2
0
        public async Task <IActionResult> Login([FromBody] IdentityModel identityModel)
        {
            //LoginViewModel met (Required) UserName en Password aanbrengen.
            if (!ModelState.IsValid)
            {
                return(BadRequest("Unvalid data"));
            }

            try
            {
                //geen persistence, geen lockout -> via false, false
                var result = await _signInManager.PasswordSignInAsync(identityModel.UserName,
                                                                      identityModel.Password, false, false);

                if (result.Succeeded)
                {
                    var jwtsvc = new JWTServices <User>(_configuration, _logger,
                                                        _usermanager, _passwordHasher);
                    var token = await jwtsvc.GenerateJwtToken(identityModel);

                    return(Ok(token));
                    //return Ok("Welcome " + identityModel.UserName);
                }
                ModelState.AddModelError("", "Username or password not found");
                return(BadRequest("Failed to login")); //zo algemeen mogelijke reactive. Vertelt niet dat het pwd niet juist is.
            }
            catch (Exception exc)
            {
                _logger.LogError($"Exception thrown when logging in: {exc}");
            }
            return(BadRequest("Failed to login")); //zo weinig mogelijk (hacker) info }
        }
        public async Task <IActionResult> GenerateJwtToken([FromBody] LoginResource identityResource)
        {
            try {
                var jwtsvc = new JWTServices <IdentityUser>(configuration, logger, userManager, hasher);
                var token  = await jwtsvc.GenerateJwtToken(identityResource);

                return(Ok(token));
            } catch (Exception exc) {
                logger.LogError($"Exception thrown when creating JWT: {exc}");
            }

            return(BadRequest("Failed to generate JWT token"));
        }
        // [ValidateAntiForgeryToken]
        //CSRF: enkel nodig indien (statefull) via een browser , form ingelogd wordt
        public async Task <IActionResult> Login([FromBody] LoginDTO loginDTO)
        // , [FromQuery(Name = "d")] string destination = "frontend")
        {
            var returnMessage = "";

            try

            {
                if (ModelState.IsValid)
                {
                    var user = await userManager.FindByEmailAsync(loginDTO.Email);

                    if (user == null)
                    {
                        return(StatusCode((int)HttpStatusCode.Unauthorized, "The combination of emailadres and password is wrong. Please try again."));
                    }
                    //TODO:inkomend emailadres strippen van spaties

                    //geen persistence, geen lockout -> via false, false
                    var result = await signInMgr.PasswordSignInAsync(loginDTO.Email, loginDTO.Password, false, false);

                    if (result.Succeeded)
                    {
                        try
                        {
                            //password controle gebeurt ook in de JWTService
                            //extra checks zijn mogelijk . bvb op basis vd rol en een querystring item
                            var jwtsvc = new JWTServices <User>(configuration, logger, userManager, hasher);
                            var token  = await jwtsvc.GenerateJwtToken(loginDTO);

                            return(Ok(token));  // HET TOKEN returnen
                        }
                        catch (Exception exc)
                        {
                            logger.LogError($"Exception thrown when creating JWT: {exc}");
                        }
                    }
                    return(StatusCode((int)HttpStatusCode.Unauthorized, "The combination of emailadres and password is wrong. Please try again."));
                    //zo algemeen mogelijke boodschap. Vertel niet dat het pwd niet juist is.
                }
                throw new Exception("Please fill in all information");
            }
            catch (Exception exc)
            {
                returnMessage = $"Foutief of ongeldig request: {exc.Message}";
                ModelState.AddModelError("", returnMessage);
                Debug.WriteLine(exc.Message);
                return(new StatusCodeResult(500));
            }
            // return BadRequest(returnMessage); //zo weinig mogelijk (hacker) info
        }
Exemple #5
0
        public async Task <IActionResult> GenerateJwtToken([FromBody] LoginDTO identityDTO)
        {
            try
            {
                var jwtsvc = new JWTServices <Person>(configuration, logger, usermanager, hasher);
                var token  = await jwtsvc.GenerateJwtToken(identityDTO);

                return(Ok(token));
            }
            catch (Exception exc)
            {
                logger.LogError($"Exception thrown when creating JWT: {exc}");
            } //Bij niet succesvolle authenticatie wordt een Badrequest (=zo weinig mogelijke info) teruggeven.
            return(BadRequest("Failed to generate JWT token"));
        }
Exemple #6
0
        public async Task <ActionResult> Index()
        {
            IEnumerable <Claim> claims = null;

            try
            {
                claims = await JWTServices.GetTokenAsync("username", "password").ConfigureAwait(false);
            }
            catch (Exception e)
            {
                claims = null;
                throw e;
            }

            ViewBag.Title = "Home Page";
            return(View());
        }
Exemple #7
0
 public IActionResult GenerateJwtToken()
 {
     // TODO
     // CHECK IF USERNAME IS TAKEN INSIDE USERSCONTROLLER
     try
     {
         var jwtsvc = new JWTServices(configuration, logger);
         var token  = jwtsvc.GenerateJwtToken();
         return(Ok(token));
     }
     catch (Exception exc)
     {
         logger.LogError($"Exception thrown when creating JWT: {exc}");
     }
     //Bij niet succesvolle authenticatie wordt een Badrequest (=zo weinig mogelijke info) teruggeven.
     return(BadRequest("Failed to generate JWT token"));
 }
Exemple #8
0
        // [ValidateAntiForgeryToken]
        //CSRF: enkel nodig indien (statefull) via een browser , form ingelogd wordt
        public async Task <IActionResult> Login([FromBody] LoginDTO loginDTO)
        // , [FromQuery(Name = "d")] string destination = "frontend")
        {
            var returnMessage = "";

            //LoginViewModel met (Required) UserName en Password aanbrengen.
            if (!ModelState.IsValid)
            {
                return(BadRequest("Onvolledige gegevens"));
            }
            try
            {
                //geen persistence, geen lockout -> via false, false
                var result = await
                             signInMgr.PasswordSignInAsync(loginDTO.UserName, loginDTO.Password, false, false);

                //optioneel: cardnumber controle
                if (result.Succeeded)
                {
                    try
                    {
                        //password controle gebeurt ook in de JWTService
                        //extra checks zijn mogelijk . bvb op basis vd rol en een querystring item
                        var jwtsvc = new JWTServices <User>(configuration, logger, userManager, hasher);
                        var token  = await jwtsvc.GenerateJwtToken(loginDTO);

                        return(Ok(token));  // HET TOKEN returnen
                    }
                    catch (Exception exc)
                    {
                        logger.LogError($"Exception thrown when creating JWT: {exc}");
                    }
                }
                throw new Exception("User of paswoord niet gevonden.");
                //zo algemeen mogelijke boodschap. Vertel niet dat het pwd niet juist is.
            }
            catch (Exception exc)
            {
                returnMessage = $"Foutief of ongeldig request: {exc.Message}";
                ModelState.AddModelError("", returnMessage);
                Debug.WriteLine(exc.Message);
            }
            return(BadRequest(returnMessage)); //zo weinig mogelijk (hacker) info
        }
Exemple #9
0
        public async Task <IActionResult> Validate([FromQuery(Name = "email")] string email, [FromQuery(Name = "token")] string token)
        {
            var user = await userManager.FindByEmailAsync(email);

            if (user == null)
            {
                return(NotFound("User not found."));
            }

            var jwtsvc = new JWTServices <User>(configuration, logger, userManager, hasher);
            var userId = jwtsvc.ValidateToken(token);

            if (userId.ToString() != user.Id)
            {
                return(BadRequest("Invalid token."));
            }

            return(new OkObjectResult(userId));
        }
Exemple #10
0
        public async Task <IActionResult> Login(IdentityModel identityModel)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest("Unvalid data"));
            }
            try
            {
                var jwtsvc = new JWTServices <GeoPointUser>(_configuration, _userManager, _hasher, _logger);
                var token  = await jwtsvc.GenerateJwtToken(identityModel);

                if (token.GetType() == typeof(IdentityError))
                {
                    IdentityError error = (IdentityError)token;
                    return(BadRequest(error.Description));
                }
                return(Ok(token));
            }
            catch (Exception e)
            {
                _logger.LogError($"\r\n\r\nError thrown on AuthController - Login method (" + DateTime.UtcNow.ToString() + ") \r\nException thrown when trying to login: "******"\r\n\r\n");
            }
            return(BadRequest("Failed to login"));
        }
Exemple #11
0
 public UserController(UserManager <ApplicationUser> userManager, SignInManager <ApplicationUser> signInManager, JWTServices jWTServices)
 {
     this.userManager   = userManager;
     this.signInManager = signInManager;
     this.jWTServices   = jWTServices;
 }
Exemple #12
0
        public async void VerificarAction(object sender, EventArgs args)
        {
            string resultado = await JWTServices.Verificar();

            lblResultado.Text = resultado;
        }
Exemple #13
0
        public async void GetTokenAction(object sender, EventArgs args)
        {
            string resultado = await JWTServices.GetToken(nome.Text, password.Text);

            lblToken.Text = resultado;
        }