gpt4 book ai didi

twitter - 处理与多个 Twitter 帐户的连接的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-02 14:12:28 26 4
gpt4 key购买 nike

我的应用程序需要一个 twitter 帐户来创建一个帐户并进行身份验证。然后,用户可以随意链接任何其他 Twitter 帐户。因此,用户有一个主要的 twitter 帐户,允许他连接到我的应用程序,然后,他可以浏览他之前在应用程序中链接的所有帐户。我的问题是关于 Twitter 端的登录过程。

首先,我想过设置 force_login仅在关联新帐户时。这样,用户每次想要连接到我的应用程序时,都不必在 Twitter 上重新连接。并且,当他想关联另一个帐户时,force_login迫使他选择正确的帐户。问题是 Twitter 与最后一个经过身份验证的帐户保持连接。因此,如果用户在链接另一个帐户后立即从我的应用程序注销,然后使用 twitter 登录,他会使用第二个帐户登录,并在我的应用程序上创建一个新用户。例子:

用户有两个推特账户:@a 和@b。他已通过@a 向 Twitter 进行了身份验证。他注册了我的应用程序,Twitter 向他展示了我的应用程序要求的权限,用户接受,他被重定向到我的应用程序,创建了一个可以使用 @a 进行身份验证的新用户。
然后,他链接@b 帐户。感谢 force_login ,Twitter 要求他提供凭据。用户登录@b,Twitter 请求权限,然后,该帐户链接到我的应用程序上的用户。我们现在有一个用户可以使用@a 进行身份验证并且链接到@b。
然后,我的应用程序上的 session 结束了,用户需要重新连接。因为没有force_login ,Twitter 发现他已经连接到授权我的应用程序的帐户,因此无需用户执行任何操作即可接受连接。但是,没有人看到该用户与最后一个帐户相关联:@b。所以,我得到了一个@b 的登录操作,这意味着创建一个新用户。
我现在有两个用户:User1 可以使用@a 进行身份验证并链接到@b,而 User2 可以使用@b 进行身份验证。我的用户不明白它的@a 帐户在哪里。

所以我的问题是:我是否必须设置 force_login任何地方?或者是否有另一种方法可以告诉 Twitter 在链接帐户时不要进行身份验证?

编辑更多细节:

这并不容易。请记住,许多用户应该管理同一个帐户。一个简单的例子:@Maurice 和@Roy 是@ReynholmIndustries 公司的成员。他们将在我的服务上使用自己的 Twitter 帐户创建自己的帐户。因此,在我的服务中,我将拥有可以与 @Maurice 连接的 User1 和可以与 @Roy 连接的 User2。然后,@Maurice 会将@ReynholmIndustries 帐户添加到我的服务中。因此,使用@Maurice 登录后,他可以管理@Maurice 和@ReynholmIndustries。然后,@Roy 也会添加 @ReynholmIndustries。没有人可以使用@ReynholmIndustries 登录,但@Maurice 和@Roy 可以使用自己的帐户进行管理。然后,显然有人可以通过@ReynholmIndustries 注册来创建新用户。

困难在于添加新帐户时:UserA 通过在 Twitter 上登录来登录到我的服务。他现在被认证为@Maurice,在我的服务中作为 UserA,可以管理@Maurice。然后,他通过在 Twitter 上以@ReynholmIndustries 的身份登录来添加@ReynholmIndustries。他现在在我的服务中被认证为@Maurice,可以管理@Maurice 和@ReynholmIndustries,但在推特上,他现在被认证为@ReynholmIndustries。
后来,他失去了对我的服务的身份验证,然后单击了登录按钮。他在 twitter oauth 表单上重定向,我们现在有两个选择:

  • 没有 force_login :他被认证为 @ReynholmIndustries 因为这是他登录的最后一个帐户。因此,Twitter 不会要求他进行身份验证,他会自动重定向到我的服务,但不是作为使用 @Maurice 进行身份验证的 UserA,而是作为新用户:UserC 将使用 @ReynholmIndustries 进行身份验证。 UserC 只能管理@ReynholmIndustries,因为他是新用户。
  • 使用 force_login :即使他在 Twitter 端使用 @ReynholmIndustries 进行身份验证,他也需要提供登录/通行证,并且他一定会选择正确的帐户:@Maurice,以访问 UserA 并管理两个帐户。但是,每次他必须对我的服务进行身份验证时,他总是必须提供登录/通行证。

  • 通过写这篇文章,我意识到这不是问题:如果我的服务有本地身份验证,用户每次失去身份验证时也应该输入 login/pass ......也许 force_login 真的是正确的选择。你怎么看这一切?

    最佳答案

    对我来说,您的问题似乎与 Twitter 完全无关。您只需要在您的应用程序中正确处理登录/注册过程。

    根据您的描述,情况如下:

  • 用户使用@a 帐户注册
  • 在内部,您在数据库中创建用户配置文件(我假设您拥有该数据库,实际上与哪种数据库无关),如下所示:
  • 用户A
  • id = 1(您的内部 ID)
  • 名称 = 用户 A
  • 账户(相关表)
  • 推特@a
  • 用户再添加一个 (@b) 帐户
  • 您可以像这样更新用户配置文件:
  • 用户A
  • id = 1
  • 名称 = 用户 A
  • 帐户
  • 推特@a
  • 推特@b
  • 用户退出
  • 用户使用@b 帐户重新登录
  • Twitter 批准并重定向回您的应用

  • 现在你说“所以,我得到了一个@b 的登录操作,这意味着创建一个新用户。”。为什么这样? Twitter 对您的应用程序一无所知,但您确实知道。

    您在这里要做的只是搜索您的数据库,发现您已经拥有“twitter @b”帐户并且它链接到“UserA”。然后,您只需将“UserA”登录到您的应用程序中,而不是创建新用户(无论如何,您不希望不同的用户拥有相同的 twitter 帐户,因此 twitter 帐户 id 在您的数据库中应该是唯一的)。

    关于twitter - 处理与多个 Twitter 帐户的连接的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35079760/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com