使用Twitter登录,并保持登录状态(PHP)

时间:2011-03-31 20:46:22

标签: php session cookies twitter oauth

我正在创建一个用户需要注册才能参与的网站。我正处于截止日期,我真的不想写一个完整的用户注册/登录系统,所以我想我会让Twitter API处理它。我已经在Twitter上注册了一个应用程序,并且我有适当的PHP代码,允许用户登录并允许访问我的应用程序。问题是,我不希望用户每次访问网站时都必须登录,我想实现“保持登录状态”选项,我只是在弄清楚如何做到这一点。< / p>

我可以简单地将oauth_token和oauth_token_secret存储在cookie中,并在每次有人访问该网站时阅读cookie。这些cookie值的存在(或不存在)将决定该人是否获得Twitter授权。当然,这是一种简单的方法,如果用户决定搞乱cookie,可能会发生不好的事情。

另一种方法是仅在cookie中存储oauth_token,并在我的数据库中保存oauth_token和oauth_token_secret。当用户访问时,我检查cookie值,如果它存在,我检查数据库是否有匹配的值并获取秘密令牌,但是如果用户得到其他人的oauth_token密钥,那么事情仍然可能出错。

最后一个选项是将token和token_secret存储在数据库中并生成一个唯一的随机值,也许对它进行一些任意操作以进一步模糊它,也许是md5()它,并将该值存储在cookie中还有在数据库中。

当然,我对这种事情一无所知,这就是为什么我选择不编写自己的用户系统。基本上我只是不希望用户每次都必须登录(甚至每次都必须点击“使用Twitter登录”链接)。如果他们已经登录并且已经批准我的应用程序访问他们的帐户,我希望他们能够访问该网站并让它记住它们。最好的方法是什么?

1 个答案:

答案 0 :(得分:6)

“保持登录状态”部分可由您处理。您让用户第一次通过Twitter登录,然后设置cookie。将来你会检查是否设置了cookie,如果是,那么使用它来自动登录用户并且没有提供twitter登录。

您无需强制Twitter执行部分停留记录。