I particular - Ich verstehe nicht, wie Benutzer, die authentifiziert mit oauth zu einem bestimmten Konto in meiner Anwendung verknüpfen?Wie identifiziere ich Benutzer, die sich über OAUTH anmelden?
hier ist also Konten in meiner 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;
Mit OpenID zum Beispiel gibt es eine einzigartige Benutzer-ID (uri, xri), die diesen Benutzer eindeutig identifiziert. So kann ich einen Link nur auf meine Konten wie folgt aus:
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
);
So Jedes Mal, wenn Benutzer in über openid anmeldet -> ich seinen regulären Konto bekommen kann Referenzierung fk_accounts_id.
Aber wenn es um oauth - AFAIK geht, gibt es keine Dinge wie oauth_identity_string ... Und da oauth Token Tokens selbst ändern können, kann nicht als eindeutiger Link zum Profil in meiner Anwendung verwendet werden ..... Na und soll ich tun? Wie identifiziere ich einen Benutzer, der sich über oauth anmeldet?
Nicht alle Anbieter teilen sich die gleiche Idee verwenden von dem, was die Benutzerkennung ist, da dieses Kennungskonzept nicht von OAuthxx definiert ist. Zum Beispiel ist es für Twitter eine Nummer (es gibt keine E-Mail). Für die meisten anderen ist die E-Mail die Kennung, aber es gibt keine eindeutige Regel. –
@SimonMourier Können Sie eine konkrete Liste der Anbieter und Bezeichner bereitstellen? – mareoraft
Nein, ich kann nicht.Sie müssen Entwicklerdokumentation für jeden der Provider, die Sie interessiert sind durchsuchen (es gibt nicht einmal eine solche Liste der "am häufigsten verwendeten" Anbieter) und durch Lesen und Verstehen ihre Dokumente –