2015-05-13 142 views
10

我已經建立了我的谷歌的OAuth谷歌的OAuth上MVC5 ExternalLoginCallback?錯誤= ACCESS_DENIED

enter image description here

我添加的代碼到Startup.Auth.cs

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

但經過我選擇了一個谷歌帳戶登錄,它重新將我重定向到登錄頁面,

我通過Chrome檢查了網絡,發現訪問被拒絕。

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

我無法弄清楚。

請幫忙。謝謝。


更新 現在我做別的東西: 1.我的賬戶控制器 2中添加的註釋([RequireHttps])我啓用了我的項目的SSL。 2.我更新了網址並在Google控制檯中重定向了網址https:

在我選擇我的Google帳戶後嘗試登錄Google,它返回了相同的access_denied。

如果Google的回覆可以提供更詳細的信息,那將會更好。

回答

23

我有同樣的問題使用最新的ASP.Net MVC模板選擇「個人賬戶」。

解決方案是在Google Developer控制檯中爲我的項目啓用Google+ API。

我找到了我的答案here(向下滾動到「更改爲Google OAuth 2.0 ...」)。

+0

謝謝M,沒錯。就我而言,我也發現我需要更多的信息。因此,在啓用Google+ API並註釋掉一些代碼行以減少所需信息後,該程序開始運行。 – Franva

+0

您還必須在項目屬性上啓用ssl併爲您的站點使用https,否則您將看到access_denied問題 –

1

我也有這個問題。在啓用Google+ API後,問題尚未解決。事實證明,我沒有在我的護目鏡API控制檯中設置「授權的JavaScript起源」。所以我設置了authorized javascript origins,問題解決了。

+0

感謝您添加屏幕截圖來解釋,這非常有幫助。 – Franva

+0

不客氣,很高興我能幫到你。 :) –

1

Facebook供應商發生同樣的錯誤。

原來,解決方案與updating the nuget package to 3.1一樣簡單。

事實證明,Facebook做了他們的圖表API 從版本2.2到2的「強制升級」。3 2017年3月27日

爲了記錄我使用的是以下幾點:

在Facebook中我已經配置了測試以下設置應用:

enter image description here

enter image description here

另外,如果您使用樣本模板,返回的error參數沒有被消耗,這可能會引起誤解。您應該添加string errorExternalLoginCallback

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