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



我目前正在尝试在我的应用程序中设置用户登录和注册。不过,我要做的第一件事是让我的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
*/
}
});
}
}
}

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

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

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

有关Session类的更多详细信息,请参阅Site。

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

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

希望这是有益的。

最新更新