How to check if the user is already logged in?

孤街醉人 提交于 2019-12-01 06:53:31

问题


I am complete new to react-native and Facebook sdk

So I have followed the tutorial given here and everything works fine, the user is able to log in using facebook.

My question is :

How do I check if the user is already logged in when he opens the app next time?

I thought the callback onLoginFinished is called everytime regardless whether the user has already logged in or not. But that is not the case. If the user is logged in, the onLoginFinished not called. Is there any perticular callback to check that? or any other method or some workaround?

I tried to read the docs of react-native-fbsdk here but it seems they are not enough.

Here is the Login button:

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

And the helper functions:

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");
}

回答1:


You need to check if currentAccessToken is valid in the beginning somewhere appropriate when your app is started. If it returns null, you need to refresh the token and if refresh token is expired, redirect user to loginpage.

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


来源:https://stackoverflow.com/questions/43347645/how-to-check-if-the-user-is-already-logged-in

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!