0

我一直在通过 php 中的 Google Identity 工具包实现 OAuth 登录。我已经获得了经过身份验证的会话、用户数据、ID、照片等,这似乎或多或少都可以正常工作。

但是,我希望能够使用不依赖于用户浏览器重定向的方法登录(考虑应用程序的远程 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
}

我正在使用 CodeIgniter。有没有图书馆可以做到这一点..?我已经看到 android 应用程序使用自定义登录表单做类似的事情,所以我猜它可以在 php 中实现。

4

1 回答 1

2

您必须重定向,这是 OAuth 工作方式的核心要素,没有办法解决这个问题。这就是为什么有一个 redirect_uri 参数。

不过,您只需执行一次:当用户登录并且您正在请求访问令牌时。之后,您只需使用 curl 来请求您的数据。

于 2012-04-12T15:59:35.690 回答