Берите Passport.js и Express.js. Они хорошо работают вместе. Сложностей особых никаких, если, конечно, понимать, как вообще работает авторизация. Про альтернативы, честно скажу, не помню. Когда искал, что-то всплывало, но паспорт лучше и в плане простоты, и в плане широкого набора доступных способов авторизации.
Со стороны Vue.js никаких сложностей нет. Vue.js не предоставляет никакого инструментария для работы с http запросами. Поэтому все возможные сложности в этом плане будут связаны с той библиотекой, которую вы для этого выберете. Я бы рекомендовал сразу нацеливаться на новый fetch API. Если нужна поддержка старых браузеров есть полифиллы. Fetch прозрачно поддерживает и куки и заголовки авторизации, так что проблем особых быть не должно.
Для тестирования и отладки авторизации на бэкенде очень полезный инструмент - Postman. Позволяет делать запросы к бэкенду без браузера и клиентской части, легко играться с параметрами запроса, куками и заголовками.