Yay! Good to see you back here releasing things, Mr. P.
I reviewed your code just to see how you approached the problem, etc, and learned quite a bit about new API I hadn't noticed! Why did you choose to use SteamID64, exactly? I'm not around a computer that I can check what that outputs, unfortunately. And, Garry added libraries to support JSON, that's awesome!
Recommendation: You're currently creating a timer to expire access if they join and expire within 24 hours. Instead, create a timer that checks everyone's expirations every x minutes (say, 30), then create additional timers to expire them at that point. This is especially useful because I believe timers are based off game time, not real world time, so 24 hours will offer a lot of time for the clocks to get out of sync. (But I don't recall if this is definitely true or not.)