2012-04-12 67 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

相关问题