gpt4 book ai didi

java - ParseUser 的离线登录

转载 作者:行者123 更新时间:2023-11-30 11:13:49 26 4
gpt4 key购买 nike

有没有办法将 ParseUser 保存到手机中,以便下次用户可以在没有网络连接的情况下登录。我已经在 https://parse.com/docs/android/api/com/parse/ParseUser.html 查看了文档但找不到任何关于 saveEventuallypin 的信息,例如 ParseObject。目前,我必须在离线模式(无网络连接)下分别保存用户名和密码(使用 SharedPreference),但这并不好,因为我确实需要 ParseUser 对象来保存与其他实体。

我现在想到的唯一解决方案是使用存储在 SharedPreference 中的敏感数据(用户名、密码)再次登录用户(在后台),以便在任何时候保存关系有网络。但是,这种方式在安全性方面并不好,因为我必须将密码以明文形式存储在 SharedPreference 中才能登录到 Parse。

(来自 Parse Google Group 的转帖。为此我扯了两天头发)

最佳答案

您必须仅使用共享首选项。如果 Parse User 像这样接受用户名和密码,则将用户名和密码保存在首选项中:

    mPrefs = getApplicationContext().getSharedPreferences("cumulus",MODE_PRIVATE);
uname = username.getText().toString();
pass = password.getText().toString();

ParseUser.logInInBackground(uname, pass,
new LogInCallback() {


@Override
public void done(ParseUser user,
com.parse.ParseException e) {
// TODO Auto-generated method stub
if (user != null) {
// If user exist and authenticated, send user to Welcome.class
if(getFirstRun()){
//user.getObjectId();
Editor ed = mPrefs.edit();
ed.putString("user", uname);
ed.putString("pass", pass);
ed.putString("id", user.getObjectId());
ed.commit();

//userid=user.getObjectId();
new GetData().execute();



}else{

Editor ed = mPrefs.edit();
ed.putString("user", uname);
ed.putString("pass", pass);
ed.putString("id", user.getObjectId());
ed.commit();
//userid=user.getObjectId();

Intent intent = new Intent(SignInActivity.this,MainActivity.class);
startActivity(intent);
finish();

}

} else {
Toast.makeText(
getApplicationContext(),
"Error: "+e.getMessage(),
Toast.LENGTH_LONG).show();
}
}
});

public boolean getFirstRun() {
return mPrefs.getBoolean("firstRun", true);
}

public void setRunned() {
SharedPreferences.Editor edit = mPrefs.edit();
edit.putBoolean("firstRun", false);
edit.commit();
}

希望对您有所帮助。

关于java - ParseUser 的离线登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26248786/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com