1

我已經看到this頁面和其他許多人,但都提出了不適合我的解決方案。我有同樣的問題,我提供的鏈接。Google OAuth - device_id和device_name是私有IP所必需的

我在嘗試使用Google+ API功能,因此用戶可以使用Google帳戶登錄我的頁面。

當我有REDIRECT_URI爲localhost:

$client->setRedirectUri("https://localhost/..."); 

一切正常。但後來我改成了本地IP 192.168.1.10,並得到錯誤(在URL https://accounts.google.com/o/oauth2/auth?response_type=code&redirect_uri=https%3A%2F%2F192.168.1.10......。)

  1. That’s an error.

Error: invalid_request

device_id and device_name are required for private IP:

我不知道該怎麼辦。 I use PHP server wrappers. 我無法更改etc/hosts,因爲我也在移動設備上嘗試我的代碼(Android,IPAD)。所以,本地IP是必要的,在Mobile上測試它。我希望避免在某個真實的服務器上設置測試頁面,因爲在開發頁面時,測試本地主機上的網頁是最快的方式。

回答

2

如果您無法更改某些設備的hosts文件,我想最好的辦法是使用本地DNS服務器來僞造一個域,就像您在/ etc/hosts中使用條目一樣。 這個答案應該可以幫助您與此:

https://unix.stackexchange.com/a/64944

如果您設置設備使用您的計算機域名服務器,應該可以欺騙一個域名並使用這個域名進行測試OAuth2驗證程序。

下面是關於此錯誤的詳細信息: http://developers.blog.box.com/2012/12/19/going-beyond-oauth2-byod-in-the-enterprise/

DEVICE_ID和devive_name在規格上提到的:http://tools.ietf.org/html/draft-ietf-oauth-v2-31#section-3.2.1