2012-04-12 2 views
0

Я внедряю логин OAuth через набор инструментов Google Identity на php. Я дошел до получения аутентифицированного сеанса, userdata, id, фотографии и т. Д., Который, кажется, работает более или менее нормально.Аутентификация с помощью 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 
} 

Я использую CodeIgniter. Есть ли библиотеки, которые могут это сделать?? Я видел, как приложения для Android делали похожие вещи, используя пользовательские формы входа, поэтому я предполагаю, что это возможно в php.

ответ

2

У вас есть перенаправление, это основа, необходимая для того, как работает OAuth, нет никакого способа обойти это. Вот почему есть параметр redirect_uri.

Вам нужно сделать это только один раз: когда пользователь входит в систему, и вы запрашиваете токен доступа. После этого вы просто используете завиток, например, для запроса своих данных.

+0

yep, играл с ним весь день, и понял это тоже :) это очень классная система, но требование иметь какую-то вещь в браузере происходит довольно раздражающе. Представьте, если вы хотите, чтобы люди регистрировались внутри приложения. Много осложнений. Для контекста нашла эту статью, которая очень помогла: http://softwareas.com/oauth-openid-youre-barking-up-the-wrong-tree-if-you-think-theyre-the-same-thing – dmp

Смежные вопросы