存储用户凭证数据 - 在设备和设备上线上

时间:2014-03-24 00:10:13

标签: java android

我正在编写一个Android应用程序,要求用户创建一个帐户,然后登录才能访问从外部源(以及设备本地)提取的数据。我正在尝试编写注册码,并坚持使用最佳方法。

目前,我想我应该创建共享首选项以在设备上存储用户名和密码,然后通过db调用将数据写入外部源。

所以我希望工作流程看起来像这样:

  1. 用户在设备上打开应用程序
  2. 向用户显示带有"登录"和"注册"的按钮。
  3. 用户选择"注册"并输入基本信息(姓名,电子邮件,首选用户名,密码)
  4. 用户点击注册按钮
  5. OnClick创建共享首选项并连接到db以写入用户凭据。
  6. 用户被重定向到主要活动
  7. 用户关闭应用
  8. 用户打开应用程序并自动登录到应用程序。
  9. 目前我有2个类,一个包含UI的register.java和一个包含逻辑的AccountPreferences.java。这是最好的方法吗?

    另外,创建共享首选项然后在这里创建单独的数据库调用是最佳解决方案吗?我试着调查AccountManager,但发现这个非常复杂。我想确保我第一次正确编码,而不必重写,如果有更好的方法可以做到这一点。

    提前致谢,

    斯科特。

1 个答案:

答案 0 :(得分:0)

您的工作流程并不差,但我会做出以下更改:

  1. 注册后,我会重定向到Login活动,而不是主活动
  2. 在单击“登录”按钮时的“登录”活动中,检查“用户名”和“密码”是否匹配。 如果匹配,请将它们保存到您的SharedPreferences并移至主要活动。 如果不匹配,请显示警告并清除用户名和密码字段。
  3. SharedPreferences虽然是存储偏好的最佳选择,但总是更好地解决安全问题。请阅读this answer了解详情。
  4. 注意:这类问题在SO中通常是不受欢迎的,因为它们是基于意见的。