我正在研究MVC 5應用程序,我需要使用Google的oAuth2進行身份驗證。有很多教程(包括輸入和一些視頻)都顯示了獲得這種設置的相同方式,但我根本無法讓他們爲我工作。所以讓我從頭開始。來自ASP.NET MVC的Google/Google +的OAuth2 5
我開始使用裏克安德森的great blog post如何獲得此設置。該博文有點過時,所以在與Google網站互動時步驟有點不同,但除了不同的導航之外,所有重要信息都在那裏,並且我能夠跟隨。這使我能夠使GOOGLEPLUS API並設置以下客戶端ID消耗:
快進到我的代碼和我做了以下幾件事:
- 新的MVC應用程序(個人帳戶進行身份驗證)
- 啓用HTTPS(使用IISExpress現在,但我信任的證書,以保持瀏覽器高興)
- 配置我Startup.Auth.cs這樣:
Startup.Auth.cs:
app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
{
ClientId = GoogleClientId,
ClientSecret = GoogleClientSecret
});
在這一點上,我是能夠得到谷歌按鈕顯示在登錄屏幕上:
當我點擊它,它會將我帶到Google的身份驗證/授權屏幕,我授予我的應用程序訪問我的Google帳戶信息的權限。
在這裏,我點擊「允許」和可悲的是,這是哪裏出了問題。但有些事情也是正確的。此時,如果我在我的Google帳戶下查看我的Connected Apps,我現在確實看到我的MVC應用程序出現了。因此,大部分情況下,Google的結局看起來不錯。但是,當我檢查的要求,紅旗彈出:
在與一些人來說誰是比我聰明(!THX加洛韋先生),有人建議我照做this blog post。所以長話短說,我做了以下修改:
- 配置了我的重定向的URI谷歌API是
/signin-googleplus
- 安裝的NuGet包:
Install-Package Owin.Security.GooglePlus
- 修改了我的Startup.Auth.cs這樣:
Startup.Auth。CS
app.UseGooglePlusAuthentication(new GooglePlusAuthenticationOptions
{
ClientId = GoogleClientId,
ClientSecret = GoogleClientSecret
});
在挖掘到這訪問被拒絕使用Fiddler錯誤,我可以告訴大家,從請求到/signin-google
的響應,其中error=access_denied
第一大作:
挖成403,我看到這樣的響應:
HTTP/1.1 403 Forbidden
Vary: X-Origin
Content-Type: application/json; charset=UTF-8
Date: Tue, 14 Jun 2016 23:36:15 GMT
Expires: Tue, 14 Jun 2016 23:36:15 GMT
Cache-Control: private, max-age=0
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Server: GSE
Alternate-Protocol: 443:quic
Alt-Svc: quic=":443"; ma=2592000; v="34,33,32,31,30,29,28,27,26,25"
Accept-Ranges: none
Vary: Origin,Accept-Encoding
Content-Length: 213
{
"error": {
"errors": [
{
"domain": "usageLimits",
"reason": "userRateLimitExceeded",
"message": "User Rate Limit Exceeded"
}
],
"code": 403,
"message": "User Rate Limit Exceeded"
}
}
我也曾嘗試這些額外的東西,以防萬一:
- 多個谷歌帳戶(如用戶,不擁有API賬戶)
- 無痕/的InPrivate模式,以確保高速緩存清除
- 用戶帳戶撤銷應用程序訪問再試
我真的可以使用一些幫助得到這個從重定向回Google上班!
首先:你在谷歌開發者控制檯打開的OAuth2 API?它默認關閉。 –
@LukaszMakowej是的,我做到了。幾分鐘前我編輯了我的問題,澄清了這一點。 – Jaxidian
第二:請在此處粘貼來自瀏覽器的完整回叫網址(撥打Google後)。可以有關於錯誤的信息 - 我不確定小提琴手是否顯示所有這些信息。 –