2011-12-17 3 views
4

안녕하세요, 저는 명시 적 프레임 워크를 사용하여 노드에 사이트를 만듭니다. 페이스 박스를 사용하여 사이트의 음악이 멈추지 않도록 로그인을 사용할 수있는 상자를 제공하려고합니다.ExpressJS/Node ajax 로그인

인증을 위해 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

당신은 사용자가 음악을 당신이 facebox 같은 라이트 박스와 함께 할 수없는 다음 중지하지 않고 Everyauth를 통해 로그인 할 수 있도록합니다. 페이지를로드하고 (따라서 음악 재생을) 유지하려면 AJAX가 필요하지만 AJAX는 리다이렉트에 의존하기 때문에 OAuth가 작동하지 않습니다.

  • 사용자가 새로운 팝업 창 "B"를 "A"페이지에 로그인 열려면 클릭

    로그인 과정
  • Everyauth를 가리키는 :

    은 당신이 뭔가를 할 필요가

  • 사용자가 인증 할
  • 및 사용 권한 부여 관련하여 OAuth 제공 업체에
  • 창 "B를"창 "B"를 리디렉션합니다 귀하의 사이트에 다시 연결됩니다
  • 당신은 프로세스의과에서 종료를 선택해야 팝업 창 "B"는 사용자가 성공적으로 로그인 한 창 "A"와 통신해야합니다. 직접 자바 스크립트로, 또는 서버 (WebSocket을, 혜성 등 폴링을 통해) 원래의 페이지를 알릴 수 있도록함으로써 그렇게 할 수 있습니다
  • 귀하의 음악 창에 "A"
전체 재생 시간이었다 것