【问题标题】:Facebook ID or Cognito ID or Alternative for my iPhone applicationFacebook ID 或 Cognito ID 或我的 iPhone 应用程序的替代品
【发布时间】:2016-07-09 15:22:21
【问题描述】:

我目前通过存储该用户的 FacebookID 来唯一标识该用户。我最近翻阅了一下,发现这是不正确的用法,而且 Facebook ID 可能会因某种原因发生变化,总而言之,我不应该使用它们。这是真的?如果是这样,当新的 facebook 用户登录并验证自己时派生的 AWS Cognito ID 是否是唯一标识用户的可行方法?如果不是,我将如何唯一链接一个 facebook 帐户,显然没有足够稳定的变量来存储,并在我的数据库中存储一个唯一标识符?

【问题讨论】:

    标签: ios facebook facebook-graph-api amazon-cognito


    【解决方案1】:

    查看以下语句(来自官方文档:https://developers.facebook.com/docs/apps/upgrading):

    无论他们最初用于注册您的应用的版本是什么,已登录您应用的用户的 ID 都将保持不变。对于过去在任何时候登录过您的应用的任何人,此更改都是向后兼容的。

    因此,您可以使用 Facebook ID 来唯一标识您的用户。

    但是,根据您的用例和您计划管理安全性的方式,您应该考虑更多的事情。 AWS Cognito ID 的目的不是在用户之间进行通信,而是保存在您的应用程序和 Cognito 之间。因此,如果您希望用户使用他们的帐户进行交流(例如发送短信),Facebook ID 更适合于此。尽管如此,我在尝试使用 DynamoDB 实现细粒度访问控制时遇到了this problem

    【讨论】:

    • 那么你是说我可以使用 facebook ID 作为唯一标识用户的一种方式?
    • @user2977578,您误解了,Facebook id 因单个用户的应用而异,但在单个应用中始终保持不变。正如 Hatim 所说,您当然可以使用 Facebook id 来识别您的用户。
    【解决方案2】:

    正如 Hatim 所说,Cognito 身份 ID 并不意味着在用户之间共享。

    话虽如此,一旦一个身份 ID 关联了一个登录名,它只能在与另一个经过身份验证的 ID 合并时发生变化。除非您这样做(听起来不像您),否则这将是一种识别用户的稳定方法。您可以使用身份 id 作为数据库中的标识符,只要它不暴露即可。

    如果您使用的是 DynamoDB,正如 this blog post 所解释的那样,这样做可以让您配置您的 IAM 角色,从而更安全地访问这些数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-03-26
      • 2023-03-06
      • 1970-01-01
      • 2016-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多