2016-06-07 218 views
0

我正在嘗試使用谷歌日曆API對運行在AWS EC2上的Web服務器進行身份驗證。Google Oauth錯誤:redirect_uri_mismatch

當我生成憑證時,我選擇了「OAuth客戶端ID」,然後選擇了「Web應用程序」。對於我輸入的授權重定向URI:

http://ec2-XX-XX-XX-XXX.eu-west-1.compute.amazonaws.com (我已經刪去了我的EC2實例的IP地址)。我檢查了這是我想要回調的正確URL。

是在服務器日誌中生成的鏈接的格式爲:

https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=XXXXXXXXXXXX-XXXXXXXXXXXXXX.apps.googleusercontent.com&redirect_uri=http://localhost:47258/Callback&response_type=code&scope=https://www.googleapis.com/auth/calendar.readonly

當我跟隨鏈接出現錯誤 「錯誤:redirect_uri_mismatch」。

我讀過this SO question,並檢查了我使用HTTP和沒有試運行「/」

我懷疑生成的URL不應該的「localhost」的,但我已經復位client_secret .json幾次,每次我用新的客戶端密碼重新啓動tomcat時,我仍然會獲得與localhost的鏈接,但只是通過不同的端口。

在本地,我之前選擇了「其他」的憑證類型,沒有給出授權重定向URI的選項。我確實爲EC2實例嘗試了這一點,但是這不會讓我通過重定向URI獲得控制權,並通過本地主機發送重定向。

回答

1

當請求提供的uri(包括端口)與應用程序註冊的URI不匹配時,Google會拋出redirect_uri_mismatch

確保您在Web控制檯上正確註冊了Authorised redirect URIsAuthorised JavaScript origins

這是一個適用於我的示例配置。 enter image description here

+0

謝謝,問題是端口號 – Fraser

0

創建宣誓客戶端ID時,請勿選擇Web應用程序,請選擇「其他」。這樣,重定向URI不是必需的。

相關問題