2011-12-17 5 views
4

Привет Я использую экспресс-фреймворк, чтобы сделать сайт в узле. Я пытаюсь использовать facebox, чтобы представить окно, в котором можно войти в систему, чтобы музыка на сайте не переставала играть.ExpressJS/Node ajax login

Я использую mongoose-auth/everyauth для аутентификации и не могу понять, как это можно сделать.

Мне нужно сделать страницу входа как частичную, я считаю. У меня есть следующее: Я думаю, что использование loginLocals - это ответ?

У кого-нибудь есть идеи !?

var mongoose = require('mongoose') 
    , Schema = mongoose.Schema 
    , mongooseAuth = require('mongoose-auth'); 

var everyauth = require('everyauth') 
    , Promise = everyauth.Promise; 

    var UserSchema = new Schema({}); 
    UserSchema.plugin(mongooseAuth, { 
     everymodule: { 
      everyauth: { 
       User: function() { 
        return User; 
       } 
      } 
     }, 
       password: { 
        loginWith: 'email' 
        , extraParams: { 
            genre: String 
        } 
        , everyauth: { 
         getLoginPath: '/login' 
         , postLoginPath: '/login' 
         , loginView: 'login.jade' 
         , getRegisterPath: '/register' 
         , postRegisterPath: '/register' 
         , registerView: 'register.jade' 
         , loginSuccessRedirect: '/' 
         , registerSuccessRedirect: '/' 

           , loginLocals: function(req, res) { 
            //console.log("ASD"); 
           return res.partial('toop'); 
           } 
        } 
     } 
    }); 

ответ

1

Если вы хотите, чтобы ваши пользователи могли войти в систему с помощью Everyauth без вашей музыки остановки, то вы не можете сделать это с лайтбокса, как facebox. Вам нужен AJAX, чтобы ваша страница загружалась (и, следовательно, ваша музыка играла), но OAuth не работает над AJAX, потому что она использует перенаправления.

Вам нужно сделать что-то вроде этого:

  • Когда пользователь щелкает войти в систему на странице «A», откройте новое всплывающее окно «B», указывающие на ваш процесс авторизации
  • Everyauth переадресует окно «B» к соответствующему поставщику OAuth
  • пользователь будет подтверждать подлинность и выдавать разрешения
  • окно «B» будет перенаправлен на ваш сайт
  • Вам нужно подобрать конец процесса и отвсплывающее окно «B» вам нужно связаться с окном «A», которое пользователь успешно выполнил. Вы можете сделать это прямо с Javascript, или позволяя серверу информировать исходную страницу (через WebSockets, кометы, избирательные и т.д.)
  • Ваша музыка будет уже играть все время в окне «A»