Есть готовые решения для авторизации:
Passport, например.
И как вы куку собираетесь к IP адресу пользователя привязывать? Используйте JWT и будет вам счастье, с ним о таких мелочах думать не надо.
И причём здесь куки вообще?) Cookie - это всего лишь один из вариантов хранить идентификатор сессии пользователя, можно и LocalStorage использовать для этого, если у вас контент рендерится не на серваке, а например, вы используете Web API + Client (Angular, Knockout, ReactJS, нативное приложение или что-нибудь ещё)