To maintain a "presence" for that length of time, you really are reduced to using either cookies or localStorage.
To increase security, you can combine the "local" reference variable that doesn't contain any specific information (perhaps just an keyed md5 hash of a known value) with a server-side reference variable in a database (using the same keyed md5 hash) that contains the rest of the user's information that can be used to "revive" the session.
Bookmarks