对于我们的移动应用,我们运行的API使用OAuth2进行用户和客户端身份验证。我们使用的是OAuth的精简版本,它不使用范围或客户端授权,因为将使用API的唯一应用程序是由我们编写的。每个应用程序(Android和iOS现在,但计划在Web应用程序和更多移动设备上)具有自己的客户端ID和客户端密钥,直到最近我们允许每个客户端每个用户只有一个会话。然而,当用户拥有Android手机和Android平板电脑时,这会产生问题。我们的API现在的工作方式是,当用户登录手机然后尝试在平板电脑上登录时,手机会话将被删除。我们可以简单地删除每个客户端一个会话的约束,但我们也不希望每个设备有多个会话(同一个手机上有两个会话)
我的问题是,我们如何在每个客户端允许多个会话(设备)的同时仍然能够识别各个设备? (我仍然希望每个设备只有一个会话。)
我们正在考虑在客户端身份验证时在客户端身份验证上生成唯一哈希值,该哈希值与API共享并存储在客户端和API上。然而,必须有人遇到这个特殊问题,我很好奇他们的解决方案(我显然没有找到任何满意的答案在线搜索)。
非常感谢。
一些实施细节: