Простая идентификация узла: Google

Я пытаюсь войти с помощью Google в мое приложение, но он показывает ошибку, как показано ниже,

XMLHttpRequest cannot load https://accounts.google.com/o/oauth2/v2/auth?response_type=code&redirect_ur…d=410427634474-u3tpasmj4r80s6v20o54s85fikhotl79.apps.googleusercontent.com. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

Я пробовал что-то вроде ниже

app.js

passport.use(new GoogleStrategy({
    clientID        : config.googleAuth.clientID,
    clientSecret    : config.googleAuth.clientSecret,
    callbackURL     : config.googleAuth.callbackURL
},
function(accessToken, refreshToken, profile, done) {
   User.findOrCreate({ googleId: profile.id }, function (err, user) {
     return done(err, user);
   });
}
));


router.get('/pages/auth/loginWithGoogle',
    passport.authenticate('google', { scope: ['https://www.googleapis.com/auth/plus.login'] }));

router.get('/auth/google/callback',
passport.authenticate('google', {
   successRedirect : '/invite-friends',
   failureRedirect : '/pages/auth/login'
}));

1 ответ

Решение

$http() он отправит запрос ajax, который не будет работать

Приведенный ниже код открывает URL в новом окне, затем, если пользователь авторизован и все в порядке, он перенаправит главную страницу на /invite-friends

    vm.loginWithGoogle = function(){
        var win = window.open('/api/pages/auth/loginWithGoogle', "windowname1", 'width=800, height=600'); 
        var REDIRECT = 'callback';

        var pollTimer   =   window.setInterval(function() { 
            try {
                if (win.document.URL.indexOf(REDIRECT) != -1) {
                    window.clearInterval(pollTimer);
                    window.location = window.location.origin + '/invite-friends';
                    win.close();
                }
            } catch(e) {
            }
        }, 100);
    }

или используйте его, чтобы открыть URL на текущей странице:

vm.loginWithGoogle = function(){
    location.href = '/api/pages/auth/loginWithGoogle';
}
Другие вопросы по тегам