3
我有一個帶有用戶模型的Rails應用程序。我希望允許用戶使用少數服務登錄。有兩種方法可以將其存儲在數據庫中,但我不確定哪種方法最好。我應該注意到,我希望用戶能夠連接多個服務並鏈接帳戶。在向用戶模型添加開放式授權登錄時,表結構應該是什麼樣子
方法1: 對於每個服務,添加令牌/祕密字段到用戶表。這似乎有點問題,因爲如果我想存儲,例如,Twitter令牌,Twitter密碼,twitter屏幕名稱和twitter個人資料img?我可以看到用戶表有很多未使用的列。我可能會在每項服務中存儲額外的信息。這將是這個樣子:
id
twitter_token
twitter_screenname
twitter_secret
twitter_pic
facebook_token
facebook_secret
facebook_pic
facebook_name
google_token
google_secret
google_name
etc.
方法2:
或者每個用戶可以有許多社會登錄和各社會登錄屬於一個用戶。然後,我會看起來像
user_id
token
secret
social_type # foreign key to a social_site look up table
social_pic
和一張桌子的社會型表看起來是這樣的:
id
social_site_name
oauth_url
這種方法唯一的缺點是,我概括我將存儲關於所有服務。你們怎麼做?也許STI是爲了這裏...在哪裏會有一個從基本登錄類繼承的每種類型登錄的類。
謝謝!
你是怎麼做的圖?這是非常好的。 – justinhj 2009-11-27 19:12:51
圖片+1。 – BalusC 2009-11-27 19:13:41
@Justinhj; Visio pro – 2009-11-27 19:38:28