2013-01-08 2 views

답변

2

당신은 Meteor.autorun():

Meteor.autorun(function() { 
    if (Meteor.userId()) { 
    console.log('The user logged in'); 
    } 
}); 
+0

가 페이지를 다시로드시, 자동 실행을 사용하여 (또는 사용자가 이미 여전히 자동 실행을 실행 거기에 기록되어있는 경우, 최종 브라우저에서 URL을 여는 문제가있다. – Akshat

+0

지금 그것을 참조하십시오. 매우 불행한. I (기능 요청을 보내야합니다.) –

3

내부 원시 로그인 API를 Meteor.userId() 함수의 결과를 확인할 수 있습니다 (예를 들어 loginWithFacebook, loginWithPassword 등) 로그인이 완료 화재 콜백을 가지고 있지만, 이것은 현재 노출되지 accounts-ui 통해. 이것은 변경 될 수 있습니다.

잠재적 인 해결 방법은 베르너의 제안에 의해 영감을, 또한 계정으로 페이지로드를 복용 :

var oldUserId = undefined; 

Meteor.autorun(function() { 
    var newUserId = Meteor.userId(); 
    if (oldUserId === null && newUserId) { 
    console.log('The user logged in'); 
    } else if (newUserId === null && oldUserId) { 
    console.log('The user logged out'); 
    } 
    oldUserId = Meteor.userId(); 
}); 
2

그냥 대안을 제공하기 위해; 나는 원숭이가 콜백 기능을 패치했다. credentialRequestCompleteHandler는 함수를 반환하는 함수가 필요하지만 일반 원숭이 패치를 필요로하기 때문에 조금 더 복잡해 보입니다. main.js 나 늦게 한 번만 처리되는 것에 이것을 집어 넣으십시오. 나중에 참조 할 때 도움이되기를 바랍니다.

var orgCallback = Accounts.oauth.credentialRequestCompleteHandler; 
Accounts.oauth.credentialRequestCompleteHandler = function(callback){ 
    return function (credentialTokenOrError) { 
     var tmpFunc = orgCallback(callback); 
     tmpFunc(credentialTokenOrError); 
     alert("do your own thing here"); 
    } 
} 
+0

OAuth 로그인시 한 번만 * 실행 * 한 번만 할 작업을 원한다면이 방법을 사용하는 것이 좋습니다.이 콜백을 사용하면 여러 가지 다른 방법을 시도해 볼 수 있습니다. 사용자가 사용자 이름/비밀번호를 통해 로그인하면 * 실행되지 않습니다. – kynan

관련 문제