Had*_*.eu 5 twitter login twitter-oauth
我的应用程序需要一个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.然后,我的应用程序上的会话结束,用户需要重新连接.因为没有force_login,Twitter看到他已经与一个为我的应用程序授权的帐户连接,因此无需用户采取任何操作即可接受连接.但是,没有人看到的是用户与最后一个帐户连接:@b.所以,我得到了@b的登录动作,这意味着新的用户创建.我现在有两个用户:User1可以使用@a进行身份验证并链接到@b,而User2可以使用@b进行身份验证.我的用户不明白它的@a帐户在哪里.
所以我的问题是:我必须在force_login任何地方设置吗?或者还有另一种方法可以告诉Twitter在链接帐户时不进行身份验证吗?
这并不容易.请记住,许多用户应该管理同一个帐户.一个简单的例子:@Maurice和@Roy是@ReynholmIndustries公司的成员.他们将在Twitter上使用自己的帐户在我的服务上创建自己的帐户.所以在我的服务上,我会有User1可以连接@Maurice和User2,可以连接@Roy.然后,@ Maurice将@ReynholmIndustries帐户添加到我的服务中.因此,在使用@Maurice登录后,他可以管理@Maurice和@ReynholmIndustries.然后,@ Roy将添加@ReynholmIndustries.没有人可以使用@ReynholmIndustries登录,但是@Maurice和@Roy,他们自己的帐户可以管理它.然后,显然有人可以通过注册@ReynholmIndustries来创建新用户.
难点在于添加新帐户:UserA通过在Twitter上登录来登录我的服务.他现在已经被认证为@Maurice并且作为UserA服务并且可以管理@Maurice.然后,他通过在Twitter上登录@ReynholmIndustries添加了@ReynholmIndustries.他现在已经在@Maurice的服务上获得认证,可以管理@Maurice和@ReynholmIndustries,但在Twitter上,他现在已经被认证为@ReynholmIndustries.后来,他失去了我的服务认证,他点击登录按钮.他被重定向到twitter oauth表格,我们现在有两个选择:
通过写这个,我意识到这不是一个问题:如果我的服务有本地身份验证,用户每次输入auth时都应该输入login/pass ...也许force_login真的是正确的选项.你怎么看待这一切?
对我来说,你的问题似乎与 Twitter 无关。您只需要在应用程序中正确处理登录/注册过程即可。
根据您的描述,发生的情况是这样的:
现在你说“所以,我得到了@b 的登录操作,这意味着创建一个新用户。”。为什么这样?Twitter 对您的应用程序一无所知,但您确实知道。
您在这里要做的只是搜索您的数据库,发现您已经拥有“twitter @b”帐户并且它链接到“UserA”。然后,您只需将“UserA”登录到您的应用程序中,而不是创建新用户(您无论如何都不希望不同的用户具有相同的 Twitter 帐户,因此 Twitter 帐户 ID 在您的数据库中应该是唯一的)。
| 归档时间: |
|
| 查看次数: |
144 次 |
| 最近记录: |