我一直在通过php中的Google身份工具包实施OAuth登录。我已经获得了经过身份验证的会话,用户数据,身份证,照片等,这似乎或多或少都有效。
但是,我希望能够使用不依赖于用户浏览器重定向的方法进行登录(考虑应用程序的远程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中实现。
答案 0 :(得分:2)
你必须重定向,这是OAuth工作方式的核心要素,没有办法解决这个问题。这就是为什么有一个redirect_uri参数。
您只需执行此操作一次:当用户登录并且您正在请求访问令牌时。之后,您只需使用curl来请求您的数据。