Beispiel #1
0
        public async Task <IActionResult> Refresh([FromBody] RefreshTokenRequest refreshToken)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(refreshToken.RefreshToken))
                {
                    return(Unauthorized());
                }
                var userName    = User.Identity.Name;
                var accessToken = await HttpContext.GetTokenAsync("Bearer", "access_token");

                var jwtResult = _jwtAuthManager.Refresh(refreshToken.RefreshToken, accessToken, DateTime.Now);
                return(Ok(new LoginResponse
                {
                    Username = userName,
                    Role = User.FindFirst(ClaimTypes.Role)?.Value ?? string.Empty,
                    AccessToken = jwtResult.AccessToken,
                    RefreshToken = jwtResult.RefreshToken.TokenString,
                }));
            }
            catch (SecurityTokenException e)
            {
                return(Unauthorized(e.Message));
            }
        }
Beispiel #2
0
        public ActionResult RefreshToken(string RefreshToken, string AccessToken)
        {
            try
            {
                var UserName = User.Identity.Name;
                if (string.IsNullOrWhiteSpace(RefreshToken))
                {
                    return(Unauthorized());
                }


                var jwtResult = _jwtAuthManager.Refresh(RefreshToken, AccessToken, DateTime.Now);



                return(Ok(new LoginResult
                {
                    UserName = jwtResult.UserName,
                    RefreshToken = jwtResult.RefreshToken,
                    AccessToken = jwtResult.AccessToken
                }));
            }
            catch (SecurityTokenException ex)
            {
                return(Unauthorized(ex.Message));
            }
            catch (Exception ex)
            {
                return(Unauthorized(ex.Message));
            }
        }
Beispiel #3
0
        public async Task <ActionResult> RefreshToken([FromBody] RefreshTokenRequest request)
        {
            try
            {
                var userName = User.Identity.Name;
                _logger.LogInformation($"User [{userName}] is trying to refresh JWT token.");

                if (string.IsNullOrWhiteSpace(request.RefreshToken))
                {
                    return(Unauthorized());
                }

                var accessToken = await HttpContext.GetTokenAsync("Bearer", "access_token");

                var jwtResult = _jwtAuthManager.Refresh(request.RefreshToken, accessToken, DateTime.Now);
                _logger.LogInformation($"User [{userName}] has refreshed JWT token.");
                return(Ok(new LoginResult
                {
                    UserName = userName,
                    Role = User.FindFirst(ClaimTypes.Role)?.Value ?? string.Empty,
                    AccessToken = jwtResult.AccessToken,
                    RefreshToken = jwtResult.RefreshToken.TokenString
                }));
            }
            catch (SecurityTokenException e)
            {
                return(Unauthorized(e.Message)); // 401
            }
        }
Beispiel #4
0
        public async Task <ActionResult> RefreshToken([FromBody] RefreshTokenRequest request)
        {
            try
            {
                var userName = User.Identity?.Name;
                _logger.LogInformation($"User [{userName}] is trying to refresh JWT token.");

                if (string.IsNullOrWhiteSpace(request.RefreshToken))
                {
                    return(Unauthorized());
                }
                string header = _httpContextAccessor.HttpContext.Request.Headers["Authorization"];
                header = header.Remove(0, 7);

                var jwtResult = _jwtAuthManager.Refresh(request.RefreshToken, header, DateTime.Now);
                _logger.LogInformation($"User [{userName}] has refreshed JWT token.");
                return(Ok(new LoginResult
                {
                    UserName = userName,
                    Role = User.FindFirst(ClaimTypes.Role)?.Value ?? string.Empty,
                    AccessToken = jwtResult.AccessToken,
                    RefreshToken = jwtResult.RefreshToken.TokenString
                }));
            }
            catch (SecurityTokenException e)
            {
                return(Unauthorized(e.Message));
            }
        }
        public async Task <ActionResult> RefreshToken([FromBody] RefreshTokenRequest request)
        {
            try
            {
                var userName = User.Identity.Name;

                if (string.IsNullOrWhiteSpace(request.RefreshToken))
                {
                    return(Unauthorized());
                }

                var accessToken = await HttpContext.GetTokenAsync("Bearer", "access_token");

                var jwtResult = _jwtAuthManager.Refresh(request.RefreshToken, accessToken, DateTime.Now);
                return(Ok(new LoginResult
                {
                    UserName = userName,
                    Role = User.FindFirst(ClaimTypes.Role)?.Value ?? string.Empty,
                    AccessToken = jwtResult.AccessToken,
                    RefreshToken = jwtResult.RefreshToken.TokenString
                }));
            }
            catch (SecurityTokenException e)
            {
                return(Unauthorized(e.Message)); // return 401 so that the client side can redirect the user to login page
            }
        }
        public async Task <ActionResult> RefreshToken([FromBody] RefreshTokenRequest request)
        {
            try
            {
                var userName = User.Identity?.Name;
                _loggerService.Info("User:"******"is trying to refresh JWT token.");

                if (string.IsNullOrWhiteSpace(request.RefreshToken))
                {
                    return(Unauthorized());
                }

                var accessToken = await HttpContext.GetTokenAsync("Bearer", "access_token");

                var jwtResult = _jwtAuthManager.Refresh(request.RefreshToken, accessToken, DateTime.Now);
                _loggerService.Info("User:"******"has refreshed JWT token.");
                return(Ok(new
                {
                    UserName = userName,
                    AccessToken = jwtResult.AccessToken,
                    RefreshToken = jwtResult.RefreshToken.TokenString
                }));
            }
            catch (SecurityTokenException e)
            {
                return(Unauthorized(e.Message)); // return 401 so that the client side can redirect the user to login page
            }
        }
        public async Task <ActionResult> RefreshToken([FromBody] RefreshTokenRequest request)
        {
            try
            {
                var userName = User.Identity.Name;
                _logger.LogInformation($"User [{userName}] is trying to refresh JWT token.");

                if (string.IsNullOrWhiteSpace(request.RefreshToken))//check if the request token is not provided
                {
                    return(Unauthorized());
                }


                var accessToken = await HttpContext.GetTokenAsync("Bearer", "access_token");              //Get the Jwt access token

                var jwtResult = _jwtAuthManager.Refresh(request.RefreshToken, accessToken, DateTime.Now); //Refresh the token and get JWTAuthResult
                _logger.LogInformation($"User [{userName}] has refreshed JWT token.");
                return(Ok(new LoginResult
                {
                    UserName = userName,
                    Role = User.FindFirst(ClaimTypes.Role)?.Value ?? string.Empty,
                    AccessToken = jwtResult.AccessToken,
                    RefreshToken = jwtResult.RefreshToken.TokenString
                }));
            }
            catch (SecurityTokenException e)
            {
                return(Unauthorized(e.Message)); // return 401 so that the client side can redirect the user to login page
            }
        }
        public async Task <ActionResult <LoginResult> > RefreshToken([FromBody] RefreshTokenRequest request)
        {
            try
            {
                var username = User.Identity.Name;
                int?userId   = Int32.Parse(User.FindFirst(ClaimTypes.NameIdentifier)?.Value);
                if (string.IsNullOrWhiteSpace(request.RefreshToken))
                {
                    return(Unauthorized());
                }

                var accessToken = await HttpContext.GetTokenAsync("Bearer", "access_token");

                var         jwtResult = _jwtAuthManager.Refresh(request.RefreshToken, accessToken, DateTime.Now);
                LoginResult result    = new LoginResult {
                    Username     = username,
                    UserId       = userId,
                    AccessToken  = jwtResult.AccessToken,
                    RefreshToken = jwtResult.RefreshToken.TokenString
                };
                return(Ok(result));
            }
            catch (SecurityTokenException exception)
            {
                return(Unauthorized(exception.Message));
            }
        }
        public async Task <ActionResult> RefreshToken([FromBody] RefreshTokenRequest request)
        {
            try
            {
                var userID = User.FindFirst(ClaimTypes.NameIdentifier)?.Value ?? string.Empty;
                _logger.LogInformation($"User [{userID}] is trying to refresh JWT token.");

                if (string.IsNullOrWhiteSpace(request.RefreshToken))
                {
                    return(Unauthorized());
                }

                var accessToken = await HttpContext.GetTokenAsync("Bearer", "access_token");

                var jwtResult = _jwtAuthManager.Refresh(request.RefreshToken, accessToken, DateTime.Now, userID);
                _logger.LogInformation($"User [{userID}] has refreshed JWT token.");
                return(Ok(new UserTokenModel
                {
                    UserId = Convert.ToInt32(User.FindFirst(ClaimTypes.NameIdentifier)?.Value),
                    Token = jwtResult.AccessToken,
                    RefreshToken = jwtResult.RefreshToken.TokenString,
                    RefreshTokenExpiration = jwtResult.RefreshToken.ExpireAt,
                    Created_On = DateTime.Now
                }));
            }
            catch (SecurityTokenException e)
            {
                return(Unauthorized(e.Message));
            }
        }
Beispiel #10
0
        public async Task <ActionResult> RefreshToken([FromBody] RefreshTokenRequest request)
        {
            try
            {
                var userName = User.Identity.Name;
                _logger.LogInformation($"User [{userName}] is trying to refresh JWT token.");

                if (string.IsNullOrWhiteSpace(request.refreshToken))
                {
                    return(Unauthorized());
                }

                var accessToken = HttpContext.Request.Headers["Authorization"].FirstOrDefault()?.Replace("Bearer ", "");
                var jwtResult   = _jwtAuthManager.Refresh(request.refreshToken, accessToken, DateTime.Now);
                _logger.LogInformation($"User [{userName}] has refreshed JWT token.");
                return(Ok(new LoginResult
                {
                    username = userName,
                    accessToken = jwtResult.accessToken,
                    refreshToken = jwtResult.refreshToken.tokenString
                }));
            }
            catch (SecurityTokenException e)
            {
                return(Unauthorized(e.Message)); // return 401 so that the client side can redirect the user to login page
            }
        }
        public async Task <ActionResult> RefreshToken([FromBody] RefreshTokenRequest request)
        {
            try
            {
                string userName = User.Identity?.Name ?? String.Empty;
                _logger.LogInformation($"User [{userName}] is trying to refresh JWT token.");

                if (String.IsNullOrWhiteSpace(request.RefreshToken))
                {
                    return(Unauthorized());
                }

                string?accessToken = await HttpContext.GetTokenAsync("Bearer", "access_token");

                JwtAuthResult jwtResult = _jwtAuthManager.Refresh(request.RefreshToken, accessToken, DateTime.Now);
                _logger.LogInformation($"User [{userName}] has refreshed JWT token.");
                return(Ok(new LoginResult
                {
                    UserName = userName,
                    AccessToken = jwtResult.AccessToken,
                    RefreshToken = jwtResult.RefreshToken.TokenString
                }));
            }
            catch (SecurityTokenException e)
            {
                return(Unauthorized(e.Message));                // return 401 so that the client side can redirect the user to login page
            }
        }
        public async Task <LoginResult> Handle(RefreshTokenRequest request, CancellationToken cancellationToken)
        {
            var jwtResult = await _jwtAuthManager.Refresh(request.RefreshToken, request.AccessToken, DateTime.UtcNow);

            return(new LoginResult()
            {
                AccessToken = jwtResult.AccessToken,
                RefreshToken = jwtResult.RefreshToken.TokenString,
                UserName = request.UserName,
                Role = _httpContextAccessor.HttpContext.User.FindFirst(ClaimTypes.Role)?.Value ?? string.Empty
            });
        }
Beispiel #13
0
        public async Task <ActionResult> RefreshToken([FromBody] RefreshTokenRequest request)
        {
            try
            {
                var userName = User.Identity.Name;
                _logger.LogInformation($"User [{userName}] is trying to refresh JWT token.");

                var accessToken = await HttpContext.GetTokenAsync("Bearer", "access_token");

                _logger.LogInformation(accessToken);
                var response = _jwtAuthManager.Refresh(request.RefreshToken, accessToken, DateTime.Now);
                _logger.LogInformation($"User [{userName}] has refreshed JWT token.");
                return(Ok(response));
            }
            catch (SecurityTokenException e)
            {
                return(Unauthorized(e.Message)); // return 401 so that the client side can redirect the user to login page
            }
        }
        public async Task <IActionResult> Refresh([FromBody] string token)
        {
            try
            {
                JwtAuthResult jwtResult = await _jwtAuthManager.Refresh(token, DateTime.Now);

                return(Ok(jwtResult.AccessToken));
            }
            catch (UserNotFoundException e)
            {
                Log.Error(e.Message);
                return(BadRequest(e.Message));
            }
            catch (Exception e)
            {
                Log.Error(e.Message);
                return(BadRequest());
            }
        }
Beispiel #15
0
        public IActionResult RefreshToken(RefreshTokenRequest request)
        {
            try
            {
                if (string.IsNullOrWhiteSpace(request.RefreshToken))
                {
                    return(Unauthorized());
                }

                var accessToken = Request.Headers[HeaderNames.Authorization].ToString().Replace("Bearer ", "");
                var jwtResult   = _jwtAuthManager.Refresh(request.RefreshToken, accessToken, DateTime.Now);

                return(Ok(new RefreshTokenResponse()
                {
                    AccessToken = jwtResult.AccessToken,
                    RefreshToken = jwtResult.RefreshToken.TokenString
                }));
            }
            catch (SecurityTokenException e)
            {
                return(Unauthorized(e.Message));
            }
        }
Beispiel #16
0
        public async Task <ActionResult> RefreshToken([FromBody] RefreshTokenRequest request)
        {
            try
            {
                // Fetch current user
                string userEmail = ((ClaimsIdentity)User.Identity).Claims.Where(c => c.Type == ClaimTypes.Email).FirstOrDefault().Value;
                var    user      = await _userManager.FindByEmailAsync(userEmail);

                //
                var userName = User.Identity?.Name;
                _logger.LogInformation($"User [{userName}] is trying to refresh JWT token.");

                if (string.IsNullOrWhiteSpace(request.RefreshToken))
                {
                    return(Unauthorized());
                }
                var accessToken = await HttpContext.GetTokenAsync("Bearer", "access_token");

                var jwtResult = _jwtAuthManager.Refresh(request.RefreshToken, accessToken, DateTime.Now);
                _logger.LogInformation($"User [{userName}] has refreshed JWT token.");

                var roles = await _userManager.GetRolesAsync(user);

                return(Ok(new LoginResult
                {
                    //UserName = userName,
                    Roles = roles.ToList <string>(),
                    AccessToken = jwtResult.AccessToken,
                    RefreshToken = jwtResult.RefreshToken.TokenString
                }));
            }
            catch (SecurityTokenException e)
            {
                return(Unauthorized(e.Message)); // return 401 so that the client side can redirect the user to login page
            }
        }
        public LoginResult RefreshToken(RefreshTokenRequest request, string userName, string token)
        {
            try
            {
                logger.LogInformation($"User [{userName}] is trying to refresh JWT token.");
                if (string.IsNullOrWhiteSpace(request.RefreshToken))
                {
                    throw new Exception($"User unauthorized");
                }

                var jwtResult = jwtAuthManager.Refresh(request.RefreshToken, token, DateTime.Now);
                logger.LogInformation($"User [{userName}] has refreshed JWT token.");
                return(new LoginResult
                {
                    UserName = userName,
                    AccessToken = jwtResult.AccessToken,
                    RefreshToken = jwtResult.RefreshToken.TokenString
                });
            }
            catch (SecurityTokenException)
            {
                throw new Exception($"User unauthorized");
            }
        }