For user authentication system you can use passport.js.
Regarding logging in when user comes later, you need to use session
and for better consistency, it can be even shared session
storage. Here is good article for that.
If you have shared session, then many services that store session there, will be able to restore session and authentication data.
Session is using cookies (usually), and they are one of the important data that is used in order to restore session ID, in same time there is more than that (browser data, end point (IP)), so it is still very reliable, and stealing cookies - will not allow you to get into someones session so easily.
In order to keep "remember me" login system, you need reliable and long lasting sessions on server side, that expire something like in 7 days after last activity or so. It means your session should be lightweight, and store only most important data. Same time you can have many levels of data stored with different expiration times.