我们目前的任务是实现一个(最好是简单的)身份验证系统,用于与RESTful API进行移动应用程序通信.后端具有用户特定的数据,由用户的电话号码标识.我试图更多地了解安全性,不同的方法以及它们工作方式的原因.
我想到了一个简单的身份验证系统:
我有以下问题:
这种方法有什么重大缺陷吗?假设我们使用HTTPS,它是否足够安全以发送未加密的数据?访问令牌是否可以安全地存储在移动设备上,以便只有我们的应用程序可以读取它们?还有什么我们还没有想到的吗?
我们已经发现,当手机被盗或以其他方式受到损害时,数据不再安全,但这是一个难以克服的风险.访问令牌可以暂时有效,以最大限度地降低此风险.
我假设这种方法很简单,某处有一个巨大的缺陷:)你能开导我吗?
我们目前正在实施推送通知(目前仅适用于IOS),我们正计划使用Urban Airship.如果他们安装了我们的应用并启用了推送,我们希望向设备发送推送消息,如果没有,则发送短信.我们的用户为通知付费,因此我们希望尽可能确保他们始终获得推送消息或短信.发送推送消息本身工作正常,但我很困惑如何跟踪我们实际上可以发送推送消息的人.
据我所知,真正确定用户是否可以接收推送消息的唯一方法是,在发送推送消息之前,另外调用城市飞艇api以检查设备是否存在且处于活动状态.我宁愿不为每个推送消息做2个api呼叫,因此可以选择在本地跟踪城市飞艇中的所有已注册设备,并且每小时左右更新一次该列表.然而,这意味着"有源设备列表"并不总是完全准确,我们必须自己跟踪所有已注册的设备,这就像重新实现城市飞艇的一部分一样.
有没有其他(更好)的方法来做到这一点?据我所知,当我向城市飞艇发送推送消息时,无论设备是否处于活动状态,或者是否存在,api始终会返回成功发送的消息.
我无法想象我是唯一有这个问题的人.有没有人有更好的解决方法,或者我坚持自己想出的2个选项?