2011-02-16 57 views
1

所以我想让我的客户用Twitter登录,只是推特。Twitter OAuth识别

Twitter说:“您不应该再次为您的用户存储密码”,但我如何使用twitters API重新认证我的用户?

如果我在用户重新将用户重新发送到twitter之后,Twitter会再次询问用户是否想让我的应用程序访问。

在没有存储本地用户数据的情况下,是否可以与Twitter帐户进行无缝集成?

编辑

看来问题并不十分清楚。我所经历的例如http://forum.jquery.com/。他们使用OpenID。我点击“使用谷歌登录”。我被重定向到谷歌。谷歌记得我曾经给Zoho一次,并立即将我送回forums.jquery.com,这次用zoho的access_token来验证我。我没有Zoho的持久数据。然而,他们可以登录我。

OAuth的twitter功能如下。用户来到我的网站,他们点击“使用twitter登录”并重定向到twitter。 Twitter会问他们再次他们是否想让应用程序访问他们的数据。而不是谷歌的即时重定向。

是否有可能让twitter立即将用户重定向到我。是否有一个我可以忽略的设置。

回答

1

你真的读过API吗?

阅读getting started页面,您不存储为用户存储访问令牌的密码。如果你希望人们登录并注册你将不得不存储一些数据;-)

+0

我怎么知道哪些用户属于哪个存取权限令牌呢? – Tjirp 2011-02-16 15:25:42

+0

如何判断哪个用户名和密码属于哪个帐户? – 2011-02-17 00:49:14

2

你从Twitter存储的是用户的TOKEN和用户的SECRET。这些值由Twitter(或任何oauth提供商)在您进行oauth身份验证时发布。

您可以在PHP中使用这个库的想法:

https://github.com/abraham/twitteroauth

或者这一个在Ruby中:

https://github.com/jnunemaker/twitter

的过程非常简单,一旦你尝试过与任何真实的例。这并不困难。

也有一些不错的截屏在这里:

http://railscasts.com/episodes/241-simple-omniauth

http://railscasts.com/episodes/235-omniauth-part-1

http://railscasts.com/episodes/236-omniauth-part-2

+0

我明白了。我甚至可以工作。但想象一下:用户登录到我的网站。我收到他们的访问令牌并将其保存在会话中以调用Twitter API。用户在两周后回来。会话丢失。当我想重新认证他时,我必须将他寄回给Twitter。他必须第二次进入。而不是叽叽喳喳告诉我,用户“X”已经给一次访问,并且他的访问令牌是“Y”,而不会向用户显示允许/拒绝屏幕。我可以将用户token存储在数据库中,但这正是我想要避免 – Tjirp 2011-02-16 15:27:45

+0

以及您不能存储令牌或者您无法将用户关联到数据库中的帐户!存储令牌比存储密码的安全风险小得多。 – fire 2011-02-16 16:14:31

+1

您必须将这些值保存在任何持久性存储中,否则您的用户将需要再次访问Twitter。正如我多次说过的那样, – Christian 2011-02-16 16:17:50

0

克里斯蒂安评论就是我一直在寻找。

您必须将这些值保存在任何持久性存储中,否则您的用户将需要再次访问Twitter。

耻辱,叽叽喳喳不承认,用户已经允许我的应用程序和重定向自动