小编Lar*_*ijn的帖子

OAuth2 同一客户端 ID 上的多个会话(设备)

对于我们的移动应用程序,我们正在运行一个 API,该 API 使用 OAuth2 进行用户和客户端身份验证。我们使用的是 OAuth 的精简版本,它不使用范围或客户端授权,因为唯一使用该 API 的应用程序是由我们编写的。每个应用程序(目前为 Android 和 iOS,但计划开发 Web 应用程序和更多移动应用程序)都有自己的客户端 ID 和客户端密钥,直到最近,我们还允许每个客户端每个用户只能有一个会话。然而,当用户拥有 Android 手机和 Android 平板电脑时,这会引发问题。我们 API 现在的工作方式是,当用户在手机上登录然后尝试在平板电脑上登录时,手机会话将被删除。我们可以简单地删除每个客户端一个会话的限制,但我们也不希望每个设备多个会话(同一部手机上有 2 个会话)

我的问题是,我们如何允许每个客户端有多个会话(设备),同时仍然能够识别各个设备?(我仍然希望每台设备只进行一次会话)。

我们正在考虑在客户端身份验证时在客户端上生成唯一的哈希值,该哈希值将共享给 API 并存储在客户端和 API 上。然而,肯定已经有人遇到了这个特殊的问题,我对他们的解决方案很好奇(显然我在网上搜索时没有找到任何令人满意的答案)。

非常感谢。

一些实施细节:

  • NodeJS API
  • Passport 和 oauth2orize OAuth 实现
  • ResourceOwnerPasswordStrategy(用于同时验证客户端和用户)和 ClientPasswordStrategy(我们还支持 FB 登录,因此在执行此操作时仍然需要对客户端进行授权)
  • 不记名代币

oauth node.js oauth-2.0

5
推荐指数
0
解决办法
2202
查看次数

标签 统计

node.js ×1

oauth ×1

oauth-2.0 ×1