2014-06-06 4 views
1

github을 사용하여 인증을 설정하려고합니다. 나는 documentation을 따랐습니다.Meteor : 설치 계정 -github이 작동하지 않습니다.

$> meteor add accounts-github 
$> meteor add service-configuration 

그리고 server/github.js 내 코드는 다음과 같습니다 : 지금 유성를 시작하면

ServiceConfiguration.configurations.remove({ 
    service: "github" 
}); 
ServiceConfiguration.configurations.insert({ 
    service: "github", 
    clientId: '****', 
    secret: '*************' 
}); 

Meteor.loginWithGithub({ 
    requestPermissions: ['user', 'public_repo'] 
}, function (err) { 
     if (err) 
     Session.set('errorMessage', err.reason || 'Unknown error'); 
}); 

나는 다음과 같은 오류 얻을 :

/Users/me/.meteor/tools/5bf1690853/lib/node_modules/fibers/future.js:173 
        throw(ex); 
         ^
TypeError: Object #<Object> has no method 'loginWithGithub' 
at app/server/github.js:11:8 
at app/server/github.js:18:3 
.... 

그래서 보인다 나는 패키지를 설치 한 Meteor 개체에는 loginWithGithub 메서드가 없습니다. 어떤 제안?

+1

왜 서버에서 로그인을 시도하고 있습니까? 'Meteor.loginWithGithub'는 클라이언트에만 존재합니다. – user3374348

답변

3

코드는 앱의 /server 디렉토리에서 실행됩니다.

보통 Meteor가 Github OAuth 로그인 대화 상자를 표시하도록이 코드를 웹 브라우저에서 호출합니다.

브라우저 측에서만 작동하기 때문에 서버에서는 사용할 수 없습니다. 이것이이 오류를 보는 이유입니다.

일반적으로 은 버튼이나 일부 UI 요소를 클릭하여 로그인 프로세스를 시작하는 이벤트 리스너에서 실행됩니다.

또 다른 점은 클라이언트 에서뿐만 아니라 Session (Session.get, Session.set 등)입니다.

Meteor documentation을 사용하는 곳에서 실행되는 방법을 확인하십시오. 각 메소드의 상단 모서리에 코드가 실행될 수있는 위치 (클라이언트, 서버 또는 모든 위치)가 표시됩니다.

관련 문제