2009-10-30 88 views
1

我即将在我的网站上添加一项功能,该功能会将内容发布到用户的Twitter帐户。我读到,存储“OAuth”令牌比存储其用户名和密码(这是有道理的)更好。在MySQL中存储Twitter OAuth

我应该在我的MySQL数据库中存储什么?令牌,秘密和用户名?或者只是令牌?

你会使用什么数据类型?他们多大?

谢谢!

回答

1

它们不是很大(可能是15或20个字符,不能准确记住),并且是字符串。注意:这可能会改变。 OAuth规范中没有任何内容描述如何生成令牌和秘密,也没有描述它们的外观。我希望他们永远是字符串,但我可能希望使列比当前需要的大一点。

如果将它们存储在数据库中,则需要通过其他方式对用户进行身份验证,以便知道哪些令牌要拔出并使用,以便它们不能被恶意使用。如果你已经有了它,它的工作是有道理的,否则你可能想重新考虑它。

另一种方法是将它们的标记存储在一个cookie中,这样做的缺点是(如果你不加密它们或使用SSL),它们通过网络传播,如果它们改变电脑,浏览器或删除他们的Cookie,您必须让他们再次完成整个OAuth流程。

对于没有其他auth的网站,我会加密它们并将它们存储在cookie中。如果您已经让他们登录,则将令牌和秘密与登录关联起来,并将它们存储在数据库中。

还有其他的方法。如果您不想使用加密,您可以使用随机生成的ID,如Cookie中的GUID/UUID指向数据库中带有令牌的记录。总而言之,这取决于您希望应用程序如何从用户的角度来表现。

请确保您处理的情况下,用户也取消您的应用程序。

0

应用程序的秘密和令牌特定于您的应用程序,可以存储在数据库或某个配置文件中。 用户令牌应与varchar(100)(最大值)一起存储到databse以及他的twitter ID。您可以通过twitter OAuth获取其他详细信息的同时获取Twitter ID。 进一步指导以下链接

http://www.9lessons.info/2010/02/connect-twitter-api-with-oauth-using.html