我即将在我的网站上添加一个功能,将内容发布到用户的Twitter帐户。我读到存储“OAuth”令牌比存储用户名和密码更好(这是有意义的)。
我应该在MySQL数据库中存储什么?令牌,秘密和用户名?或者只是令牌?
您会使用哪种数据类型?他们有多大?
谢谢!
答案 0 :(得分:1)
它们不是很大(可能是15或20个字符,不记得确切),而且是字符串。注意:这可能会改变。 OAuth规范中没有任何内容描述如何生成令牌和秘密,也不描述它们的外观。我希望它们永远都是字符串,但我可能希望使列比当前需要的大一点。
如果将它们存储在数据库中,则需要一些其他方式对用户进行身份验证,以便您知道要提取和使用的令牌,以便不会恶意使用它们。如果你已经拥有它并且它正在工作那么这是有道理的,否则你可能想重新考虑它。
另一种方法是将他们的令牌存储在cookie中,其缺点是(如果你不对它们进行加密或使用SSL),他们正在通过网络进行清除,如果他们更换计算机,浏览器或删除他们的cookie,你必须让他们再次完成整个OAuth流程。
对于没有其他身份验证的网站,我会加密它们并将它们存储在cookie中。如果您已经登录,则将令牌和密钥与登录相关联,并将它们存储在数据库中。
还有其他方法。如果您不想使用加密,则可以使用Cookie中随机生成的ID(如GUID / UUID)指向包含令牌的数据库中的记录。总而言之,这取决于您希望应用程序从用户的角度出发的行为方式。
确保您处理用户取消授权您的应用的情况。
答案 1 :(得分:0)
应用程序密钥和令牌,特定于您的应用程序,可以存储在数据库或某些配置文件中。 您应该使用varchar(100)(最大值)存储到databse的用户令牌以及他的Twitter ID。您可以从Twitter OAuth获取其他详细信息时获取Twitter ID。 如需进一步指导,请点击此链接
http://www.9lessons.info/2010/02/connect-twitter-api-with-oauth-using.html