0

我正在使用自定義本地URL來開發使用OAuth2同時使用Google和Adwords進行身份驗證的項目。自定義本地URL結果redirect_uri_mismatch

在我的/ etc中的條目/ hosts文件看起來像:

127.0.0.1 sub.example.dev:3001

在谷歌雲平臺控制檯我有一個OAuth 2.0客戶端ID設置有:

  • 類型:Web Application
  • 授權的JavaScript來源:http://sub.example.dev:3001
  • 授權的重定向URIs:
    • http://sub.example.dev:3001/auth/adwords/callback
    • http://sub.example.dev:3001/auth/google/callback

我與谷歌和AdWords中分別進行身份驗證。之前我使用的是localhost:3001,而不是適用於Google和Adwords的自定義網址。切換到自定義本地URL後,Google身份驗證仍可正常工作,但是當我嘗試使用Adwords進行身份驗證時,出現redirect_uri_mismatch錯誤。

錯誤頁面告訴我「請求中的重定向URI sub.example.dev:3001/auth/adwords/callback與OAuth客戶端授權的不匹配。」這裏報告的URI與我作爲授權重定向URI(不包括協議)完全相同。

爲什麼它可以與Google OAuth協同工作,但不支持Adwords?如何獲得自定義本地重定向網址以使用Adwords OAuth?

謝謝!

回答

0

我發現了這個問題,並且在問題本身中有提示。我在OAuth流程中傳遞的重定向URL需要包含協議,並且我在配置中忽略了這一點。

我經過在OAuth流重定向URL是sub.example.dev:3001/auth/adwords/callback

我把它改成http://sub.example.dev:3001/auth/adwords/callback和現在的作品! :D