Android:如何实现账户登录系统?

标签 android authentication accountmanager auth-token

到目前为止,我遵循了本教程:http://udinic.wordpress.com/2013/04/24/write-your-own-android-authenticator/

它运行完美。但现在我想强制我的用户登录我的应用程序。

我遇到了一些问题,但尚未找到解决方案:

  1. 我应该如何处理通常的应用程序启动登录? App启动,调用MainActivity,MainActivity没有布局,只是决定是否调用AuthenticatorActivity或允许用户进入应用程序。这就是我的解决方案。有人有更好的吗?

  2. 当我使帐户的 authToken 无效时,下次用户触发需要 authToken 的操作时,将启动 AuthenticatorActivity。但是,如果他只是按后退按钮,他仍然可以返回使用该应用程序,当然他不能更改任何内容,因为现在有 authToken,但它仍然可能会让一些用户感到困惑。我怎样才能更好地解决这个问题?

最诚挚的问候!

最佳答案

您可能应该阅读有关 data storage 的更多信息.

您可以重写Application类,并创建自己的MyApplication类(单例模式),然后您可以:

  • 管理应用程序运行时的第一个行为。

  • 管理您的 token ,因为每个 Activity 都可以访问上下文,并且只要应用程序处于 Activity 状态,此类的上下文都是 Activity 的。然后,当用户注销时,您从此类中删除 token ,并在每个 Activity onCreat() 中检查当前应用程序上下文中是否存在 token 。

  • 您可以在 Authenticator Activity 中重写 onBackPressed() 方法,以检查他是否有 token :

    /*

    • *(非 Javadoc)
    • *@参见 android.app.Activity#onBackPressed() */

    @覆盖 公共(public)无效onBackPressed(){ //在让用户返回之前检查用户是否有 token

    if(hasToken()){ 
        // go back
        AuthenticatorActivity.super.onBackPressed();
    }
    else{
       // close the activity
       finish(); 
    

    } }

  • 您可以使用共享偏好设置安全地保存您的 Cookie。

  • 如果您有很多数据需要保存,您还可以使用数据库。

您还可以使用启动器 Activity ,它启动第一个 Activity 并决定将您重定向到哪个 Activity :登录 Activity 或主 Activity 。

关于Android:如何实现账户登录系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23289292/

相关文章:

android - 在 Android 中调用 911 或紧急电话号码

android - 如何以编程方式使用智能锁 Lollipop 关闭屏幕

android - 权限被拒绝 - 缺少 INTERNET 权限?

c# - 指定 Azure 移动应用网站登录的重定向 url

java - 如何在使用 Mina 成功进行 SSL 握手后获取委托(delegate)人?

Android:双 SIM 卡手机检测用于 SMS 的 SIM 卡的供应商特定方法有哪些?

c++ - 如何使用 V2 CP 示例自定义 Windows 10 凭据提供程序?

android - 用于身份验证和服务器通信的 Accountmanager 与 sharedpreference

android - 无法让我的 AccountAuthenticatorActivity 在两个不同的应用程序中打开

android - 客户经理缓存 Android