我不确定我遇到的这个问题,所以也许你可以帮我。我已经为安卓应用程序建立了一个两步验证。
- 用户通过https将他的电话号码从应用程序发送到服务器
- 服务器通过短信将身份验证码发送回用户(基于
Twilio/PHP) - 用户收到代码并可以在上进行身份验证服务器
在这一点上,我可以确定用户是发送代码的智能手机的认证所有者。
如果用户现在重新启动手机和应用程序,我如何确保该用户仍然是经过身份验证的用户?我是否每次都必须根据身份验证码向服务器发送某种凭据?这是一种安全和正确的方法吗?
谢谢你,并致以最良好的问候!
兴奋剂
可以生成一个令牌号(类似于cookie),该令牌号存储在手机和服务器数据库中。如果你想减少跟踪另一个号码的麻烦,代币号码也可以是验证码。
您可以使用sharedpreferences或sqlite数据库等将此令牌存储在设备上
安卓上的存储选项
在每个onCreate()实例上,您可以检查这两个令牌是否匹配。
这样你就可以解决你的问题。您可以对所有后续活动执行相同的操作。
用户应该在每个请求上发送访问令牌。
您可能需要考虑OAuth流,因为您的流可以映射到OAuth令牌身份验证。请参阅此处http://oauth.net/2/
您还需要及时考虑令牌/代码的有效性。
希望这能有所帮助。