Does the re-generated refresh tokens have an expiry period in your implementation?
Yes. Let’s say you set the refresh token’s lifetime to 1 month. This means if you generate a new refresh token using an old one, the new one will be valid for 1 month from now. This is an implementation details though. You can make it so that the new one is 1 month minus the old one’s current life. This would be as good as having a hard limit to your session. Means that the user would definitely be logged out after 1 month of the session has passed.
I would recommend not using JWT for refresh tokens — since they are long lived.
I would suggest keeping a hard limit only if it is OK for you to logout users abruptly during their session. This is something that works for very high security apps. In my opinion, for most apps, a never ending session is a better used experience.
I hope this answers your question :)