Twitter登录集成到现有网站:合并帐户并存储Twitter凭据

Twitter登录集成到现有网站:合并帐户并存储Twitter凭据,twitter,single-sign-on,twitter-oauth,Twitter,Single Sign On,Twitter Oauth,我有一个网站,有自己的登录/注册机制(PHP、会话、用户和带有用户名和密码的用户配置文件数据库表等)。我们称之为ABC账户 我刚刚使用Oauth集成了Twitter的登录,在我的正常登录表单上方有一个“使用Twitter登录”按钮 现在我有了这个场景: 用户通过Twitter登录。与Facebook不同,Twitter不允许访问用户的电子邮件地址,因此我不知道通过Twitter登录的人是否是现有用户(在我的用户表中)。因此,我为他们创建了一个新帐户(我们称之为“Twitter”帐户),并通过输入

我有一个网站,有自己的登录/注册机制(PHP、会话、用户和带有用户名和密码的用户配置文件数据库表等)。我们称之为ABC账户

我刚刚使用Oauth集成了Twitter的登录,在我的正常登录表单上方有一个“使用Twitter登录”按钮

现在我有了这个场景:

用户通过Twitter登录。与Facebook不同,Twitter不允许访问用户的电子邮件地址,因此我不知道通过Twitter登录的人是否是现有用户(在我的用户表中)。因此,我为他们创建了一个新帐户(我们称之为“Twitter”帐户),并通过输入他们的“ABC”凭据提示他们与现有的“ABC”帐户合并。如果他们这样做,并且所有内容都匹配,我会将他们的twitter用户名、id和令牌存储在他们ABC帐户的DB记录中。下次他们通过Twitter登录时,我知道他们的ABC账户是谁(即,账户被“合并”),一切都很好

除此之外,我希望我的网站能够代表他们发送推文,这基本上意味着我需要一个授权的推文连接,只有他们通过推文按钮登录,而不是通过ABC帐户登录时,我才需要授权的推文连接。原因是,对于后者,我有他们的token_secret,签名后从twitterapi回调收到,但对于前者,我没有。当然,我的第一个想法是将token_secret保存在我的DB中(使用ABC帐户记录)以删除此限制,但这似乎相当于密码,存储它可能是安全漏洞

把这归结为一个问题:在DB中存储oauth令牌机密是否是“标准”实践,以实现我正在尝试做的事情(这对于现代站点来说似乎是一个相当标准的功能)。如果不是,那么替代实现是什么

更新:看:这似乎绝对不是一个“最佳实践”。但似乎我想要实现的是…不知道如何实现?也许是某种基于cookie的解决方案

彼得


顺便说一句,如果有人有更好的方法来进行我描述的帐户“合并”,我也会公开听到。我做了一些谷歌搜索,但真的找不到任何太有用的东西,虽然这个问题一定已经解决了很多次,我想???我的理解是,在Facebook的情况下,电子邮件可以用来“唯一地”识别用户(即,将他们与ABC帐户匹配),并在没有提示的情况下进行合并(尽管我甚至不确定这是否完全安全?)。

存储Twitter在OAuth过程中提供给您的令牌正是您应该做的事情。把它们塞进数据库。

Thx。我喜欢这个解决方案,因为它很简单,而且可以工作!我唯一担心的是,他们的“秘密”令牌相当于密码,因此存储未加密的密钥将是一个安全漏洞(加密必须是双向的)。我不认为这是一个安全漏洞,因为秘密令牌只能与应用程序oauth使用者和密钥结合使用。