Генерите jwt токен на стороне сервера.
Дальше этот токен vue хавает в local.storage и в http интерцепторе постоянно кладет данный токен в запрос. Хэндлер на коре, каждый запрос прослушивает и проверяет вложенный токен от клиента на валидность. Выбрасывает стандартные ошибки 400 и 401, если токен не валидный либо уже умер по таймуту.
Все довольно стандартно.
В целях самообучения, реализуйте аутентификацию при помощи вашего апи, и вашего логина пароль, без использования вк апи. Как только все будет работать, тогда подключайте вк апи.