2009-10-30 90 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