public TokenResponseModel RefreshAccessToken()

in Source/Services/Tailwind.Traders.Login.Api/Services/TokenHandlerService.cs [50:86]


        public TokenResponseModel RefreshAccessToken(string token)
        {
            var refreshToken = GetRegisteredRefreshToken(token);
            String userName;
            String newRefreshToken;
            if (refreshToken == null)
            {
                userName = RetrieveUserFromToken(token);

                if (userName == null)
                {
                    throw new Exception("Refresh token is not valid.");
                }

                newRefreshToken = GetNewRefreshToken(userName);
                _refreshTokens.Add(new RefreshTokenModel()
                {
                    Token = newRefreshToken
                });                
            }
            else
            {
                userName = RetrieveUserFromToken(token);
                newRefreshToken = GetNewRefreshToken(userName);
            }
            
            return new TokenResponseModel()
            {
                AccessToken = new AccessTokenModel()
                {
                    Token = CreateAccessToken(userName),
                    TokenType = "bearer",
                    ExpiresIn = ExpirationTimeInSeconds
                },
                RefreshToken = newRefreshToken
            };
        }