所有OAuth提供商的用户ID都是唯一的吗?

时间:2013-07-09 07:11:11

标签: java oauth userid

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

我的问题是:

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

2 个答案:

答案 0 :(得分:2)

不,用户ID在所有OAuth提供商中都不是唯一的,但如果您将其与提供商ID相关联,那么它就是。

答案 1 :(得分:0)

实现唯一的最佳方式是OAuth提供商的前缀

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