路漫漫其修遠兮,吾將上下而求索

0%

Facebook Oauth "這個網址的網域未包含在應用程式的網域中"

最近在申請Facebook APP 給用戶做OAuth 登入時一直出現以下錯誤:

無法載入網址: 這個網址的網域未包含在應用程式的網域中。若要載入這個網址,請在應用程式設定的「應用程式網域」欄位中新增應用程式的所有的網域及子網域。

這是因為透過OAuth 取得使用者資訊時需要指定 callback url。

回到Facebook App的 用戶端 OAuth 設定 頁面,詳細的設定內容如下圖:
Oauth Setting

強烈建議將重新導向 URI 使用 Strict 模式 這項功能啟用。為了加強網頁驗證的安全性,Facebook 在導向網址的時間,目標網址若與OAuth 重新導向 URI 不完全符合的話,將會出現以下錯誤:

網址已遭封鎖: 這個重新導向失敗了,因為重新導向 URI 並未列入應用程式用戶端 OAuth 設定的許可名單中。請確定已開啟用戶端和網站 OAuth 登入,並將你所有的應用程式網域新增為有效的 OAuth 重新導向 URI。

舉例來說:
未啟用Strict 模式 時,OAuth 重新導向 URIhttp://local.dev,而目標網址為:http://local.dev/auth/facebook 的話可以成功存取。

但是啟用 Strict 模式 後,OAuth 重新導向 URIhttp://local.dev,而目標網址為:http://local.dev/auth/facebook 則會存取失敗。