2015-05-13 27 views
10

ho impostato la mia Google OAuthGoogle OAuth su MVC5 errore ExternalLoginCallback? = ACCESS_DENIED

enter image description here

E ho aggiunto il codice in Startup.Auth.cs

app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions() 
    { 
     // LRC 
     ClientId = "xxxxxxxxx", 
     ClientSecret = "xxxxx" 
     //CallbackPath = new PathString("/signin-google") 
    }); 

Ma dopo che ho scelto un account google per accedere, mi ha reindirizzato nuovamente alla pagina di login,

Ho controllato la rete tramite Chrome e ho scoperto che l'accesso è stato negato.

http://www.liferunningclub.com.au/Account/ExternalLoginCallback?error=access_denied

non riesco a capirlo.

Per favore aiuto. Grazie.


Aggiornamento Ora ho fatto qualcosa di diverso: 1. ho aggiunto un'annotazione ([RequireHttps]) sul controller account 2. Ho attivato il protocollo SSL per il mio progetto. 2. Ho aggiornato l'url e reindirizzato l'url in Google Console a https

Ho provato ad accedere con Google, dopo aver selezionato il mio account Google, ha restituito lo stesso access_denied.

Sarebbe meglio se la risposta di Google potesse fornire informazioni più dettagliate.

risposta

23

Ho avuto lo stesso problema utilizzando il modello MVC ASP.Net più recente con "Account individuali" selezionato.

La soluzione era abilitare l'API di Google+ per il mio progetto nella Console per gli sviluppatori di Google.

Ho trovato la mia risposta here (scorrere fino a "Modifiche a Google OAuth 2.0 ...").

+0

Grazie M, è giusto. Nel mio caso, ho anche scoperto che avevo bisogno di più informazioni di quante potessi. Quindi, dopo aver abilitato l'API di Google+ E commentato alcune righe di codice per ridurre le informazioni richieste, il programma ha iniziato a funzionare. – Franva

+0

inoltre devi abilitare ssl sulle proprietà del progetto e utilizzare https per il tuo sito altrimenti vedrai problemi di access_denied –

1

Ho avuto anche questo problema. Dopo aver attivato l'API di Google+, il problema non è ancora risolto. Ho scoperto che non ho impostato le "Origini JavaScript autorizzate" nella mia console dell'API di goggle. Così ho impostato il authorized javascript origins e il problema è stato risolto.

+0

grazie per l'aggiunta di uno screenshot da spiegare, è molto utile. – Franva

+0

Prego, felice di poterti aiutare. :) –

1

Lo stesso errore mi è successo per il provider di Facebook.

Risulta che la soluzione era semplice come updating the nuget package to 3.1.

Si scopre che Facebook ha effettuato un "aggiornamento forzato" dell'API grafico dalla versione 2.2 alla 2.3 il 27 marzo 2017

Per la cronaca che sto utilizzando la seguente:

In Facebook ho le seguenti impostazioni configurate per un test app:

enter image description here

Inoltre, se si utilizza un modello di esempio, il parametro error restituito non viene utilizzato e può essere fuorviante. È necessario aggiungere a ExternalLoginCallback

[AllowAnonymous] 
    public async Task<ActionResult> ExternalLoginCallback(string returnUrl, string error) 
    { 
     if (error != null) 
     { 
      return View("Error"); 
     } 
Problemi correlati