I guess this is all about special querystring/route parameters in your activation link
You can, for example :
- store a link identifier and the date it has been issued in a datastore/database. Then check that a user link is no more than 48h old when a user accesses your site with it.
- store a timestamp in the link itself (no need of a db), as well as a hashcode of the timestamp concatenated to a secret key of yours. When a user comes with a link, verify that the hashcode and the timestamp match, then verify that the timestamp is no more than 48h old