2012-04-12 114 views
0

我一直通過php中的Google Identity工具包實施OAuth登錄。我得到了一個認證的會話,用戶數據,身份證,照片等,這似乎工作或多或少好。使用Google進行身份驗證而不使用重定向

但是,我希望能夠使用不依賴於用戶瀏覽器上的重定向的方法(考慮應用程序的遠程API)來登錄,但在如何實現這一點方面有點失落。

想象的請求是這樣的:

$details = new stdClass(); 

$details->secret  = $config->secret; 
$details->client_id  = $config->client_id; 
$details->app_name = 'my awesome oauth app'; 

$details->login    = array(); 
$details->login['email']  = 'some google account email @ example.com'; 
$details->login['password'] = '1234'; 

$token = $this->do_auth($details); 

if($token) { 
    // do stuff, setup cookies, insert token in session table etc 
} 

我用笨。有沒有任何圖書館可以做到這一點..?我已經看到android應用程序使用自定義登錄表單來做類似的事情,所以我猜測它可以在php中實現。

回答

2

您必須重定向,這是OAuth工作方式的核心要素,這是沒有辦法的。這就是爲什麼有一個redirect_uri參數。

您只需雖然做一次:當用戶登錄和您請求的訪問令牌。之後,您只需使用curl來請求您的數據。

+0

是的,它一整天都在玩它,並且意識到了這一點:)它是一個非常酷的系統,但是需要有某種瀏覽器的事情發生是非常煩人的。想象一下,如果你想讓人們在應用程序中註冊......很多併發症。對於上下文,發現這篇文章幫助了很多:http://softwareas.com/oauth-openid-youre-barking-up-the-wrong-tree-if-you-think-theyre-the-same -thing – dmp 2012-04-12 17:31:11

相關問題