2013-04-13 2 views
1

사용자를 인증하기 위해 사내 사용자 관리 시스템을 사용해야합니다. 또한이 시스템은 권한 부여 작업을 수행 할 때 가장 유용한 그룹 및 역할 및 사용자에 대한 사용자의 자격을 보유합니다.유성에 로그인 공급자를 추가하십시오

accounts-persona 코드를 살펴 보았지만 제대로 작동하지 않습니다. 그러므로 내가 잘못한 것을 추론합니다.

Meteor.startup(function() { 
    var config = Accounts.loginServiceConfiguration.findOne({service: 'sertal'}); 
    if (!config) { 
     Accounts.loginServiceConfiguration.insert({ service: 'sertal' }); 
    } 
}); 

Accounts.registerLoginHandler(function (options) { 
    if (!options.sertal && !options.assertion) 
     return undefined; // don't handle 

    var url = "http://dev.sertal.ch/checkCredential"; 
    var request = { 
     params: { 
     uname: options.email, 
     pword: options.password 
     } 
    }; 
    var result = Meteor.http.get(url, request); 

    if (result.statusCode !== 200) { 
     throw new Meteor.Error(Accounts.LoginCancelledError.numericError, 'Sertal Login Failed'); 
    } else { 
     var user = result.data.userrec; 
     user.groups = result.data.grprec; 
     user.id = user._id; 
     return Accounts.updateOrCreateUserFromExternalService('sertal', user); 
    } 

}); 

내가 로그인 버튼 후이 코드를 사용하여 클라이언트에 눌러 진 : 서버에서

새로운 LoginHandler이

Accounts.callLoginMethod({ 
    methodName: 'login', 
    methodArguments: {sertal: true, 
     email: $('#sertal-email').val(), 
     password: $('#sertal-password').val(), 
     resume: false 
    }, 
    userCallback: function (error) { 
     if (error) { 
     console.log("error: " + error); 
     } else { 
     $("#sertalLoginFormDiv").dropdown('toggle'); 
     } 
    } 
}); 

하지만 그것은 LoginHandler를 트리거하지 않습니다. 누락 된 것이 있어야하지만 알아낼 수는 없습니다.

주제에 관한 문서를 찾을 수 없습니다. 대답은 프로세스를 설명하는 문서를 지적하는 것일 수도 있습니다.

+0

죄송합니다. 유성 (유성)을 배우고 있습니다. 어떤 소식이 있습니까? 새 서비스를 추가 할 수 있었습니까? – jptsetung

+0

나는 더 이상 조사하지 않았다. 나는 생성 된 암호 (사용자 객체의 ID)를 사용하여 원격 사용자를위한 로컬 Meteor 사용자를 생성했다. 이것은 여전히해야 할 일 목록입니다. 유성우에 있을지도 몰라. –

답변

0

내 테스트에 따르면 methodArguments는 개체 배열이어야합니다. " '비밀번호'... 로그인 실패 {유형"

또한

는 methodArguments 객체는 객체의 루트 암호를 포함하는 경우 내가 로그에 표시되는 내용에서, 다음 유성에 오류가 발생합니다

나는 핸들러의 모든 인수를 객체의 일부로 두어이 작업을 할 수있었습니다. 클라이언트에서이 같은 뭔가 : 나는 유성 1.0 사용하고

Accounts.registerLoginHandler(function("someName", loginRequest{ 
    if(loginRequest.myLogin){ 
     // I get the loginRequestObject, and can attempt to sign in... 
    } 
}); 

참고 : 클라이언트에서 실행하는 경우

loginRequest = {myLogin:{email: email, password: password}}; 
Accounts.callLoginMethod({ 
    methodArguments: [loginRequest], 
    userCallback: callback 
}); 

, 유성은 내 서버 코드를 호출합니다.

관련 문제