您好我使用的是dynamodb,我想知道如何在用户登录时维护会话。
以下是我的登录代码
Runnable runnable = new Runnable() {
public void run() {
Users user = mapper.load(Users.class,username);
System.out.println(user.getPassword());
System.out.println(username);
if (user != null && user.getPassword().equals(password)){
//System.out.println("Correct");
runOnUiThread(new Runnable() {
@Override
public void run() {
setContentView(R.layout.activity_account);
}
});
}
这是我的用户类,我设置并获取所有实体
public class Users {
private String id;
private String email;
private String username;
private String password;
private String role;
@DynamoDBHashKey(attributeName = "id")
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
@DynamoDBAttribute(attributeName = "email")
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
同样适用于所有其他变量。
请查看这些代码并告诉我如何存储会话,因为我想要登录用户的ID。
答案 0 :(得分:2)
<强> V1 强>
您可以使用下面的SharedPreferences
public class Prefs {
public static void putPref(String key, String value, Context context){
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
SharedPreferences.Editor editor = prefs.edit();
editor.putString(key, value);
editor.commit();
}
public static String getPref(String key, Context context) {
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(context);
return preferences.getString(key, null);
}
}
必须存储后
Prefs.putPref("the key","the value",your context);
获取存储的数据后
String userId = Prefs.getPref("the key",your context);
您可以在应用中使用您想要的地方。
<强> V2 强>
使用Gson 将其添加到build.gradle
compile 'com.google.code.gson:gson:1.7.2'
并将您的用户对象转换为像这样的json
Gson gson = new Gson();
User user = ...;
String json = gson.toJson(user);
存储用户后
Prefs.putPref("user",json,your context);
获取您的用户
String json = = Prefs.getPref("user",your context);
User user = null;
if(json != null)
user = gson.fromJson(json,User.class);
那就是