两步验证-确保用户在以后的会话中仍然通过身份验证


2-Step Verification - ensure that user is still authenticated in further sessions

我不确定我遇到的这个问题,所以也许你可以帮我。我已经为安卓应用程序建立了一个两步验证。

  1. 用户通过https将他的电话号码从应用程序发送到服务器
  2. 服务器通过短信将身份验证码发送回用户(基于
    Twilio/PHP)
  3. 用户收到代码并可以在上进行身份验证服务器

在这一点上,我可以确定用户是发送代码的智能手机的认证所有者。

如果用户现在重新启动手机和应用程序,我如何确保该用户仍然是经过身份验证的用户?我是否每次都必须根据身份验证码向服务器发送某种凭据?这是一种安全和正确的方法吗?

谢谢你,并致以最良好的问候!

兴奋剂

可以生成一个令牌号(类似于cookie),该令牌号存储在手机和服务器数据库中。如果你想减少跟踪另一个号码的麻烦,代币号码也可以是验证码。

您可以使用sharedpreferences或sqlite数据库等将此令牌存储在设备上

安卓上的存储选项

在每个onCreate()实例上,您可以检查这两个令牌是否匹配。

这样你就可以解决你的问题。您可以对所有后续活动执行相同的操作。

用户应该在每个请求上发送访问令牌。

您可能需要考虑OAuth流,因为您的流可以映射到OAuth令牌身份验证。请参阅此处http://oauth.net/2/

您还需要及时考虑令牌/代码的有效性。

希望这能有所帮助。