1

我的网站使用 OAuth 实现社交登录,我们需要为每个 OAuth 用户创建一个唯一的本地帐户,目前我们使用 String id 作为每个唯一用户的身份,但是如果来自不同 OAuth 提供商的两个用户具有相同的 id碰撞。

我的问题是:

  1. 用户 ID 在所有 OAuth 提供者(例如 Facebook、Twitter、Google...)中是否唯一?
  2. 我看到一些提供者使用 String id 和一些使用 Long id,将 long id 转换为 String 并保持唯一是否安全?
4

2 回答 2

2

不,用户 ID 在所有 OAuth 提供者中不是唯一的,但如果您将其与提供者 ID 连接,那么它将是唯一的。

于 2013-07-09T07:31:22.127 回答
0

实现唯一性的最佳方法是使用 OAuth 提供者前缀,

例如,如果 Facebook 返回的用户 ID 是xyz12345,那么您可以使用用户 ID 作为facebook_xyz12345

于 2014-05-06T04:43:52.183 回答