0

Ich habe eine Django/Python-Site und habe Python Social Auth eingerichtet, um die Authentifizierung mit einem Google-Konto zu ermöglichen, eigentlich spezifisch für meine Domain. Wir haben eine Domain, die über Google-Konten gehostet wird.Google OAuth2 Whitelist, remove nicht autorisiert von der Liste

Ich habe die Whitelist so eingestellt, dass nur E-Mail-Konten von meiner Domain akzeptiert werden. Das funktioniert richtig. Wenn ich jedoch zum Authentifizierungsfenster gehe, werden alle Google-Konten angezeigt, die ich habe. Es gibt zwei Google Mail-Konten, die sich aufgrund der Whitelist-Option nicht authentifizieren können, aber die Konten werden weiterhin angezeigt. Der Benutzer wird nicht wissen, dass sie die anderen Konten nicht verwenden können, bis sie eine unangenehme Fehlermeldung "AuthForbidden: Ihre Anmeldeinformationen sind nicht zulässig" erhalten.

Kann ich die Liste, die sie sehen, auf Konten beschränken, die sie tatsächlich verwenden können? Ich habe einen Kollegen, der dies für eine andere Website eingerichtet hat, die auf ColdFusion läuft, und er setzte die Metainhalt-Header auf etwas für die Whitelist und führte die Anmeldung über Javascript durch, was ihm erlaubte, die Domäne mit dem Umfang zu spezifizieren und die Konten zu begrenzen nur für diejenigen der angegebenen Domäne sichtbar.

Vielen Dank im Voraus.

UPDATE: Wenn ich auf die Google-Auth-Seite weitergeleitet werde, kann ich & hd = domain.com zu der Abfragezeichenfolge hinzufügen, die die Anzeige begrenzt. Wie kann ich erzwingen, dass diese Variable beim Umleiten auf diese Anmeldeseite gesetzt wird?

Antwort

0

Es gefunden.

SOCIAL_AUTH_GOOGLE_OAUTH2_AUTH_EXTRA_ARGUMENTS = { 
    'hd': 'domain.com', 
    'access_type': 'online', 
} 

ich versucht hatte, es auf den Quellcode hinzugefügt, aber wenn ich meine Seite öffnete sie angemeldet mich automatisch auf, so dass ich dachte, dass etwas gebrochen war. Wenn Sie diese Argumente ändern, wird der access_type standardmäßig offline gesetzt, sodass er mich automatisch offline anmeldet. Ich musste 'access_type': 'online' hinzufügen, um dies zu verhindern.

Verwandte Themen