Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const express = require('express');
- const session = require('express-session'); // Добавьте эту строку
- const passport = require('passport');
- const GoogleStrategy = require('passport-google-oauth20').Strategy;
- const app = express()
- function getUserById(userId, callback) {
- // Ваш код для получения информации о пользователе по его идентификатору
- // Вызывайте callback с результатом (err, user)
- }
- // После определения функции можно использовать ее
- passport.deserializeUser(function(userId, done) {
- getUserById(userId, function(err, user) {
- done(err, user);
- });
- });
- passport.deserializeUser(function(userId, done) {
- getUserById(userId, function(err, user) {
- done(err, user);
- });
- });
- passport.deserializeUser(function(userId, done) {
- getUserById(userId, function(err, user) {
- done(err, user);
- });
- });
- passport.serializeUser(function(userId, done) {
- done(null, userId);
- });
- passport.deserializeUser(function(userId, done) {
- // Здесь вы можете загрузить данные пользователя по идентификатору userId
- // и передать их в функцию done.
- done(null, user);
- });
- // Добавьте следующие две строки для поддержки сеансов
- app.use(session({
- secret: '****',
- resave: false,
- saveUninitialized: false
- }));
- // Подключите passport middleware после express-session
- app.use(passport.initialize());
- app.use(passport.session());
- // Конфигурация паспорта с использованием GoogleStrategy
- passport.use(new GoogleStrategy({
- clientID: '*****',
- clientSecret: '****',
- callbackURL: '/auth/google/callback'
- },
- function(accessToken, refreshToken, profile, done) {
- // Здесь вы можете обработать и сохранить данные пользователя
- // после успешной аутентификации.
- console.log('Access Token:', accessToken);
- console.log('Refresh Token:', refreshToken);
- console.log('Profile:', profile);
- done(null, profile);
- }));
- // Маршрут для инициализации авторизации через Google
- app.get('/auth/google', passport.authenticate('google', {
- scope: ['profile', 'email']
- }));
- // Маршрут для обработки колбэка после успешной авторизации
- app.get('/auth/google/callback',
- passport.authenticate('google', {
- successRedirect: '/success',
- failureRedirect: '/error'
- })
- );
- // Защищенный маршрут, доступный только после авторизации
- app.get('/success', (req, res) => {
- res.send('Авторизация прошла успешно!');
- });
- // Маршрут для обработки ошибок авторизации
- app.get('/error', (req, res) => {
- res.send('Ошибка авторизации!');
- });
- // Настройка порта для сервера
- const PORT = 3000;
- // Запуск сервера
- app.listen(PORT, () => {
- console.log(`Сервер запущен на порту ${PORT}`);
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement