Я новичок в узле js и пытаюсь создать пример для авторизации с google passport ниже мой код:
index.js
const express = require('express');
const app = express();
var passport = require('passport');
var GoogleStrategy = require('passport-google-oauth20').Strategy;
passport.use(new GoogleStrategy({
clientID : "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
clientSecret : "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",
callbackURL : "http://localhost/google/login",
passReqToCallback : true
},
function(accessToken, refreshToken, profile, done) {
return done(); //this is the issue, I am confused with it's use
}
));
app.get('/failed', function (req, res) {
res.send('failed login')
});
app.get('/final', function (req, res) {
res.send('finally google auth has done')
});
app.get('/auth/google',
passport.authenticate('google', { scope: ['profile'] }));
app.get('/google/login',
passport.authenticate('google', { failureRedirect: '/failed' }),
function(req, res) {
// Successful authentication, redirect home.
res.redirect('/final');
});
app.listen('80', () => {
console.log('server is running')
})
Наконец, моя цель - успешный вход в систему с помощью Google без проверки значения из БД, поскольку я только изучаю его.
узел index.js
и затем я открываю URL: http://localhost/auth/google
моя программа должна запускаться get /final
после входа в систему с учетными данными Google, но с ошибкой TypeError: done is not a function
Я не пользуюсь done()
и как я могу ее решить.