【问题标题】:Authenticating with Google without using redirects在不使用重定向的情况下通过 Google 进行身份验证
【发布时间】:2012-04-12 09:33:41
【问题描述】:

我一直在通过 php.ini 中的 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 中实现。

【问题讨论】:

    标签: php codeigniter oauth google-api


    【解决方案1】:

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

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

    【讨论】:

    • 是的,玩了一整天,也意识到了这一点:) 这是一个非常酷的系统,但是需要有某种浏览器的东西是很烦人的。想象一下,如果你想让人们在应用程序中注册......很多并发症。对于上下文,发现这篇文章很有帮助:softwareas.com/…
    猜你喜欢
    • 1970-01-01
    • 2011-10-21
    • 2015-01-07
    • 2019-11-08
    • 2021-12-18
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 2016-12-15
    相关资源
    最近更新 更多