Для авторизации во ВКонтакте через Node.js необходимо выполнить следующие шаги:
1. Зарегистрировать приложение ВКонтакте и получить client_id и client_secret.
2. Установить пакет passport-vkontakte
для работы с OAuth ВКонтакте.
3. Создать маршруты для авторизации и колбэка авторизации.
4. Настроить стратегию Passport.js для работы с OAuth ВКонтакте.
Пример кода:
const express = require('express'); const passport = require('passport'); const VKontakteStrategy = require('passport-vkontakte').Strategy; const VKONTAKTE_APP_ID = 'YOUR_APP_ID'; const VKONTAKTE_APP_SECRET = 'YOUR_APP_SECRET'; passport.use(new VKontakteStrategy({ clientID: VKONTAKTE_APP_ID, clientSecret: VKONTAKTE_APP_SECRET, callbackURL: "http://localhost:3000/auth/vkontakte/callback" }, function(accessToken, refreshToken, params, profile, done) { // Действия с профилем пользователя после успешной авторизации return done(null, profile); } )); const app = express(); app.get('/auth/vkontakte', passport.authenticate('vkontakte')); app.get('/auth/vkontakte/callback', passport.authenticate('vkontakte', { failureRedirect: '/' }), function(req, res) { // Успешная авторизация res.redirect('/profile'); } ); app.listen(3000, () => { console.log('Server is running on port 3000'); });
Помимо указанного кода, не забудьте настроить сессии и сериализацию пользователя для Passport.js.
Теперь, чтобы авторизоваться через ВКонтакте, пользователю нужно перейти на страницу /auth/vkontakte
, где он будет перенаправлен для ввода учетных данных. После успешной авторизации пользователя перенаправит на /auth/vkontakte/callback
, где можно сохранить данные о профиле пользователя и пропустить его на защищенную страницу /profile
.
Надеюсь, данная информация поможет вам успешно настроить авторизацию через ВКонтакте в вашем Node.js приложении.