0

I've been implementing an OAuth login via the Google Identity toolkit in php. I've got as far as getting an authenticated session, the userdata, id, photo etc, which seems to be working more or less ok.

However, I'd like to be able to login using methods that don't rely on redirection on the user's browser (thinking of remote APIs for an application), but bit lost on how to achieve this.

Imagine a request which is something like:

$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
}

I'm using CodeIgniter. Are there any libraries that can do this..? I've seen android apps doing similar things, using custom login forms, so I'm guessing it's achievable in php.

4

1 に答える 1

2

リダイレクトする必要があります。これは OAuth の動作に不可欠な要素であり、これを回避する方法はありません。そのため、redirect_uri パラメータがあります。

ただし、これを行う必要があるのは 1 回だけです。ユーザーがログインしていて、アクセス トークンを要求している場合です。その後、たとえば curl を使用してデータを要求するだけです。

于 2012-04-12T15:59:35.690 に答える