2011-02-16 81 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。

恥辱,嘰嘰喳喳不承認,用戶已經允許我的應用程序和重定向自動