我有一个nodeJS应用程序,facebook登录由facebook-passport策略提供。用户登录后,我将他的数据保存到我自己的数据库中供以后使用。为此,我需要创建一个Facebook应用程序。从facebook应用程序的配置中,我为角色设置了人员。在我的应用程序(服务器端)中,我计划查询这些角色人员,并且只有在列出角色的人员时才允许登录。我使用facebook Graph API从角色中查询自己(这需要首先获得应用访问令牌)。我设法查询自己,并获得我自己的用户ID。但这与存储在我的应用程序数据库中的id几乎没有什么不同。除了id中的最后两个数字之外,一切都完全相同。在我的数据库中,最后两个是40,在图api查询中,最后两个是39.他们为什么不同?
我知道用户ID是应用范围的,因此每个应用都有自己的用户ID。但是因为我确实将自己作为应用程序的角色,它应该返回相同的app-scoped id,对吧?或者,当Facebook应用程序更新时,应用范围的ID可能会发生变化吗?我已经更新了很多次,所以我想知道是否会出现这种情况。或者与我自己的数据库相关的东西。我使用了mongoose(mongoDB),id的模式类型是Number。
答案 0 :(得分:3)
听起来您可能已将用户ID存储为整数。由于它们很容易在有效整数范围之外流动,因此它们可能会被视为浮点数,这可以解释其中的差异。
始终将Facebook(用户)ID存储(通常称为)字符串值。