ASP.Net MVC 5 Google-Authentifizierung mit Scope

8

Ich versuche, die ASP.Net MVC 5 Google OAuth2-Authentifizierung korrekt auszuführen.

Wenn ich eine GoogleOauth2AuthenticationOptions-Option ohne einen Bereich einstelle, kann ich mich erfolgreich anmelden.

%Vor%

Dann gibt dieser Aufruf ein ExternalLoginInfo-Objekt mit allen Eigenschaften

zurück %Vor%

Wenn ich jedoch einen Bereich hinzufügen , bekomme ich keine Login-Informationen zurück. Es ist nur null.

%Vor%

Dann gibt der Aufruf zum Abrufen externer Informationen nur null zurück .

%Vor%

In der Google-Entwicklerkonsole sind die folgenden APIs aktiviert:

  • Analytics-API
  • BigQuery API
  • Google Cloud SQL
  • Google Cloud Storage
  • Google Cloud Storage-JSON-API
  • Google+ API
  • Google+ Domains API
  • Identity Toolkit-API
  • YouTube Analytics-API
  • YouTube-Daten-API Version 3

Beim Hinzufügen von Optionen zu den Optionen wird GetExternalLoginInfoAsync unterbrochen.

    
Rob Gibbens 27.03.2014, 14:40
quelle

3 Antworten

10

Wenn jemand immer noch Probleme mit dem neuesten Microsoft hat    OWIN Middleware (3.0.0 +) ...

Ich habe von Fiddler gemerkt, dass der folgende Bereich standardmäßig an accounts.google.com gesendet wird:

%Vor%

Wenn Sie über GoogleAOuth2AuthenticationOptions.Scope.Add (...) eigene Scope (s) hinzufügen, wird der Scope zu:

%Vor%

Daher müssen Sie auch die Standardbereiche hinzufügen (oder zumindest hat dies das Problem für mich behoben):

%Vor%     
Dunc 18.12.2014 15:09
quelle
9

Also, ich habe das herausgefunden, mit viel Hilfe von Ссылка . Es stellt sich heraus, dass der integrierte Google-Authentifizierungsanbieter für MVC nur openId ist. Deshalb hat das Hinzufügen eines Oszilloskops es kaputt gemacht. Mit Fiddler konnte ich die GET-Anfrage an accounts.google.com sehen, die in der Abfragezeichenfolge "scope = openid" enthielt.

Wenn Sie im obigen Link zum GooglePlusOAuth2-Anbieter wechseln oder auf Nuget Ссылка klicken und den Anbieter verwenden Name von "GooglePlus", konnte ich erfolgreich die Bereiche hinzufügen und bekomme immer noch die Login-Informationen von GetExternalLoginInfoAsync.

    
Rob Gibbens 27.03.2014 18:31
quelle
2

Die Änderungen, die Google an seinen Authentifizierungsmechanismen vorgenommen hat, waren widerspiegelt in Version 3.0.0 von Microsoft Owin Middleware. Wie Sie richtig festgestellt haben, wurde der OAuth-Endpunkt durch eine der Änderungen auf Google+ verschoben ( Ссылка ).
Also, der Schlüssel ist:

  1. Aktualisieren Sie die OWIN-Middleware auf Version 3.0.0
  2. Aktivieren Sie die Google+ API für Ihre App in der Google Developers Console
jansokoly 09.09.2014 12:41
quelle