Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:OAuth2-如何实现记忆我的功能?_Android_Security_Oauth_Oauth 2.0 - Fatal编程技术网

Android:OAuth2-如何实现记忆我的功能?

Android:OAuth2-如何实现记忆我的功能?,android,security,oauth,oauth-2.0,Android,Security,Oauth,Oauth 2.0,一点背景: 用户在每个应用程序启动实例上输入凭据 这些凭证作为POST正文的一部分发送到服务器(我们使用AES使用密钥对其进行加密并放入POST正文),然后从服务器返回一个令牌,该令牌是一些编码字符串 此令牌将授权我们的应用程序发出请求 现在,我希望读者们关注一个事实,我们首先需要用户凭据才能获得授权令牌。 代币将在12小时后过期并且所有后续请求都是未经授权的,我们被迫将用户踢出应用程序,重新登录,并获得一个新的代币,该代币将继续使用12小时。我知道这是一次糟糕的经历 现在,我们需要实现“记住我

一点背景:

  • 用户在每个应用程序启动实例上输入凭据
  • 这些凭证作为POST正文的一部分发送到服务器(我们使用AES使用密钥对其进行加密并放入POST正文),然后从服务器返回一个令牌,该令牌是一些编码字符串
  • 此令牌将授权我们的应用程序发出请求 现在,我希望读者们关注一个事实,我们首先需要用户凭据才能获得授权令牌。

  • 代币将在12小时后过期并且所有后续请求都是未经授权的,我们被迫将用户踢出应用程序,重新登录,并获得一个新的代币,该代币将继续使用12小时。我知道这是一次糟糕的经历
    现在,我们需要实现“记住我”功能。我对使用共享首选项一点也不舒服(即使使用加密,在这种情况下,一个严重的黑客也可能获得密钥)。我该怎么办?我刚刚知道令牌web服务是oAuth2。我还是一个新手,还在看关于oAuth2的文章,我看到人们对SharedPref和AccountManager api进行了大量的讨论。但我看到的是Reto Meier的作品。他提到服务器应该使用oAuth。我的问题是在我的场景中,什么是最安全的方法,以及如何使用oAuth实现Remember me功能。任何“清晰”的例子/清晰的解释都会大有帮助。期待您的回答。

    这完全是我的意见,可能不到100%正确

    我目前正在努力解决这一问题,但我知道可能产生的一些后果是:

    • 使用派生函数在服务器数据库中存储密码 与hash+salt一起,成为每个用户唯一的salt

    • 通过发送用户名和密码(哈希或普通)实现oAuth 文本无所谓)通过HTTPS一次性发送到服务器,他
      返回具有给定过期时间的令牌。例如Dropbox
      oAuth令牌有一个巨大的验证,但并不意味着它不那么安全。你 如果用户受到威胁,只需使令牌失效

    • 将令牌存储在设备的SharedReferences中,并将其用作 记住我


    感谢您的回复。我将用更多的研究来标记你的答案:)。我可以知道,只有在你同意的情况下,你在努力解决什么问题吗?