我特別 - 我不明白如何將使用oauth進行身份驗證的用戶鏈接到我的應用程序中的特定帳戶?如何唯一標識用戶通過oauth登錄?
因此,這裏是我的applciation帳戶:
CREATE TABLE accounts (
id BIGINT NOT NULL AUTO_INCREMENT,
username VARCHAR(40),
email VARCHAR(256),
created DATETIME,
updated DATETIME,
PRIMARY KEY (id),
UNIQUE KEY (email),
UNIQUE KEY (username)
) ENGINE=InnoDB CHARACTER SET utf8 COLLATE utf8_general_ci;
使用OpenID例如有一個獨特的用戶ID(URI,XRI)唯一標識該用戶。這樣我就可以鏈接到我的帳戶這樣的:
CREATE TABLE openid_logins (
id BIGINT NOT NULL auto_increment,
fk_accounts_id BIGINT NOT NULL,
openid_identity TEXT NOT NULL, /*that's unique user id*/
openid_provider_url VARCHAR(255) NOT NULL, /*flickr, yahoo, live_journal*/
PRIMARY KEY (id),
INDEX (openid_identity),
FOREIGN KEY (fk_accounts_id) REFERENCES accounts(id) ON UPDATE CASCADE ON DELETE CASCADE
);
所以每當用戶通過OpenID登錄 - >我可以得到他經常帳戶引用fk_accounts_id。
但是,當涉及到oauth - AFAIK沒有這樣的事情oauth_identity_string ...因爲oauth標記可能會改變自己的標記不能用作一個獨特的鏈接到我的應用程序中的配置文件.....那麼是什麼我應該怎麼做?如何唯一標識通過oauth登錄的用戶?
並非所有供應商共享相同的想法什麼是用戶標識符,因爲這個標識符概念不是由OAuthxx定義的。例如,對於Twitter,這是一個數字(沒有電子郵件)。對於大多數人來說,電子郵件是標識符,但沒有明確的規定。 –
@SimonMourier你能提供一個提供者和標識符的具體列表嗎? – mareoraft
不,我不能。你必須瀏覽你感興趣的每個提供者的開發者文檔(甚至沒有這樣一個「最廣泛使用的」提供者列表),並通過閱讀和理解他們文檔。 –