Melden Sie sich mit einem anderen Google-Nutzer als Chrome in der Chrome-Erweiterung an

8

Ich habe eine Chrome-Erweiterung, die einen Benutzer zur Anmeldung über die chrome.identity.getAuthToken-Route auffordert. Dies funktioniert einwandfrei, aber wenn Sie sich anmelden, können Sie nur die Nutzer verwenden, für die Sie in Chrome Konten haben.

Der Kunde möchte sich mit einem anderen Google-Konto anmelden können; Anstatt also [email protected] zu verwenden, also das Konto, in dem Chrome angemeldet ist, möchten sie sich mithilfe von [email protected] anmelden können. Dies ist auch ein gültiges Google-Konto.

Es ist möglich, dass ich mit einem Konto in Chrome angemeldet bin und Google Mail mit einem zweiten Konto, und ich kann die Erweiterung nicht auswählen.

Ist das möglich?

    
boodle 23.02.2015, 14:24
quelle

1 Antwort

13

Anstatt den Benutzer mit chrome.identity.getAuthToken zu authentifizieren, implementieren Sie einfach den OAuth-Teil selbst.

Sie können Bibliotheken verwenden, um Ihnen zu helfen, aber das letzte Mal, dass ich die hilfreichste Bibliothek (den Google API-Client) ausprobiert habe, funktioniert nicht mit einer Chrome-Erweiterung.

Weitere Informationen finden Sie in der Dokumentation zu Google OpenID Connect . Am Ende müssen Sie lediglich den Benutzer zur OAuth-URL umleiten, Ihre Erweiterung verwenden, um die Antwort von Google (den Autorisierungscode) zu erhalten, und dann den Autorisierungscode in ein Zugriffstoken umwandeln (es handelt sich um einen einfachen POST-Anruf).

Da Sie für eine Chrome-Erweiterung nicht auf einen Webserver umleiten können, können Sie den installierten App Umleitungs-URI verwenden : urn:ietf:wg:oauth:2.0:oob . Damit zeigt Google eine Seite mit dem Autorisierungscode an.

Verwenden Sie einfach Ihre Erweiterung, um JavaScript-Code auf dieser Seite einzufügen, um den Autorisierungscode zu erhalten, schließen Sie die HTML-Seite und führen Sie den POST-Aufruf durch, um die E-Mail des Benutzers zu erhalten.

    
David 18.03.2015, 18:13
quelle