2017-04-11 1 views
0

나는 sdk사용자가 이미 로그인했는지 확인하는 방법은 무엇입니까?

그래서 here 주어진 자습서를 따라하고 모든 사용자가 페이스 북을 사용하여 로그인 할 수 있습니다, 잘 작동 react-native 새로운 완전한 오전 페이스 북.

내 질문은 : 사용자가 이미 그가 응용 프로그램 다음 번에 열 때 로그인 한 경우

어떻게 확인합니까?

콜백 onLoginFinished은 사용자가 이미 로그인했는지 여부에 관계없이 매번 호출되는 것으로 생각했습니다. 하지만 그렇지 않습니다. 사용자가 로그인 한 경우 onLoginFinished이 호출되지 않습니다. 그것을 확인 perticular 콜백이 있습니까? 또는 다른 방법이나 몇 가지 해결 방법?

react-native-fbsdkhere의 문서를 읽으려고했으나 충분하지 않습니다.

<LoginButton 
    onLoginFinished={ (error, result) => { this.handleLogIn(error, result) } } 
    onLogoutFinished={() => { this.handleLogOut() } } 
/> 

그리고 도우미 기능 :

handleLogIn(error, result) { 
    if (error) { 
     alert("Login failed with error: " + result.error); 
    } else if (result.isCancelled) { 
     alert("Login was cancelled"); 
    } else { 
     alert("Login was successful") 
     AccessToken.getCurrentAccessToken().then(
      (data) => {console.log(data);} //Refresh it every time 
     ); 
    } 
} 

handleLogOut() { 
    console.log("User logged out"); 
    alert("Log out successful"); 
} 

답변

6

앱이 시작될 때 currentAccessToken가 시작하는 곳에 적절한에 유효한지 확인할 필요가 여기에

는 로그인 버튼입니다. null을 반환하면 토큰을 새로 고쳐야하며 새로 고침 토큰이 만료 된 경우 사용자를 loginpage로 리디렉션하십시오.

AccessToken.getCurrentAccessToken().then(
      (data) => {console.log(data);} //Refresh it every time 
     ); 
+0

완벽하게 작동합니다. 감사합니다! –

+0

@agent_hunt 액세스 토큰이 만료되었는지 확인하는 방법은 무엇입니까? accesstoken이 null일까요? – nullforlife

+0

docs https://developers.facebook.com/docs/facebook-login/access-tokens/expiration-and-extension에 따르면 이는 SDK 자체가주의를 기울여야 할 것 같습니다. 네이티브 안드로이드 SDK에서 만료 시간 https://developers.facebook.com/docs/reference/androidsdk/current/facebook/com/facebook/accesstoken.html/#getexpires--을 읽는 방법이있는 것 같지만 그렇지 않습니다. react-native-fbsdk에 의해 노출 –

관련 문제