Example #1
0
        public async Task <ActionResult <EUser> > Login([FromForm] UserToLoginDto userToLogin)
        {
            var loggedUser = await _userService.Login(userToLogin);

            // Check if user passed auth
            if (loggedUser.HasError)
            {
                // Show error to user
                ViewData["modalMessage"] = loggedUser.Message;

                return(View());
            }

            // Baking JWT token
            string token = _tokenService.CreateToken(loggedUser.UserId, loggedUser.UserRoles);

            // Storing token and username in cookies
            var cookieOptions = new CookieOptions()
            {
                HttpOnly = true,
                SameSite = SameSiteMode.Strict
            };

            // Constructing cookies to set
            var cookiesData = new Dictionary <string, string>()
            {
                ["X-Access-Token"] = token,
                ["X-Username"]     = userToLogin.Email
            };

            // Setting cookies from data
            _cookiesService.SetCookies(cookiesData, cookieOptions, Response);

            return(Redirect("/user/getAllUsers"));
        }