如何在 Android Parse SDK 中检查登录的用户会话是否有效?

Ale*_*dez 5 android parse-platform

我目前正在尝试在我的应用程序中设置用户登录和注册。我要做的第一件事是检查MainActivity用户是否登录,如果登录,则检查会话是否有效。我不确定我是否得到了ParseSession正确的信息,如果是的话,我不知道此时该怎么办。(文档并没有很清楚地展示如何实现这一点)。这是我的代码:

public class MainActivity extends AppCompatActivity {

    ParseUser currentUser;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Parse.initialize(new Parse.Configuration.Builder(this)
            .applicationId(getResources().getString(R.string.parse_app_id))
            .clientKey(getResources().getString(R.string.parse_client_key))
            .server(getResources().getString(R.string.parse_server_url))
            .build()
        );

        if (isFirstLaunch()) {
            Toast.makeText(this, "This is the first launch", Toast.LENGTH_LONG).show();
        }

        if (!isUserLoggedIn()) {
            Toast.makeText(this, "User is not logged in", Toast.LENGTH_LONG).show();
        }
    }

    private boolean isFirstLaunch() {
        return false;
    }

    private boolean isUserLoggedIn() {
        currentUser = ParseUser.getCurrentUser();
        if (currentUser == null) {
            return false;
        } else {
            ParseSession.getCurrentSessionInBackground(new GetCallback<ParseSession>() {
                @Override
                public void done(ParseSession object, ParseException e) {
                    /*
                     * if session is valid
                     * return true
                     * if session is invalid
                     * run ParseUser.logOut()
                     * return false
                     */
                }
            });
        }
    }

}
Run Code Online (Sandbox Code Playgroud)

Dip*_* s. 4

Session这些对象自动管理并ParseSession存储在 Parse 的 Session 类中,您可以在Parse.com数据浏览器上查看它们

\n\n

有关以下内容的更多信息Session:会话表示登录到设备的用户实例。用户登录或注册时会自动创建会话。当用户注销时,它们会被自动删除。

\n\n

每个用户安装对都有一个不同的 Session 对象;如果用户从已登录的设备发出登录请求,则该用户之前的安装会话对象将被自动删除。

\n\n

有关会话类的更多详细信息,请参阅站点参考。

\n\n
\n

如何在 Android Parse SDK 中检查登录的用户会话是否有效?

\n
\n\n

如上所述,用户是否有效(您可以通过检查ParseUser.getCurrentUser()!= null)并使用类isAuthenticated()的方法进行身份验证ParseUser。默认情况下,会话必须有效(由 自动管理ParseSession)。您检查会话的方式是正确的,但如果用户有效且经过身份验证,则无需检查有效会话。

\n\n

希望这对您有帮助。

\n