Google Api IDtoken, постоянный?

Итак, я создаю сайт wordpress и реализую API входа в Google,

Я разработал его так, чтобы КАЖДЫЙ пользователь имел один и тот же пароль (длинная «тарабарщина»).

// КОД PHP НИЖЕ

$usrname =$_REQUEST['/:)REQUEST EMAIL FROM GOOGLE API AFTER SIGN IN:(/']; 

$creds = array();
    $creds['user_login'] = $usrname;
    $creds['user_password'] = 'AIzaSyA9s0cRKrGuhN7oLsjQUxlA1oZroWdWXbc';
    $creds['remember'] = true;

но потом я понял, что любой может просто выдать себя за пользователя, передав его электронное письмо в функцию через JS.

РЕДАКТИРОВАТЬ: плюс это видел.

"Предупреждение. Не принимайте простые идентификаторы пользователей, такие как те, которые вы можете получить с помощью метода GoogleUser.getId (), на своем внутреннем сервере. Измененное клиентское приложение может отправлять произвольные идентификаторы пользователей на ваш сервер для имитации пользователей, поэтому вместо этого вы должны использовать проверяемые идентификаторы для безопасного получения идентификаторов пользователей, выполнивших вход на стороне сервера ".

Итак, я думаю об использовании КОНСТАНТНОЙ строки, полученной из API Google, чтобы эта строка стала их паролем.

Мне нужно знать, есть ли googleUser.getAuthResponse (). Id_token; - постоянная переменная, поэтому я могу использовать ее в качестве пароля.

Под «константой» я подразумеваю, что если пользователь проверяет подлинность моего приложения в 2010 году, а идентификатор - «XPOXVSCWSW32526C», то если пользователю необходимо снова войти в систему в 2017 году, идентификатор все равно будет «XPOXVSCWSW32526C».

Спасибо.!


person wale.m    schedule 14.01.2016    source источник
comment
Используйте внутреннюю часть подхода, описанного здесь: android-developers.blogspot.com/2016/01/ ... отправьте токен идентификатора (который не является постоянным) на ваш сервер по HTTPS, подтвердите его с помощью библиотеки (например, github.com/google/google- api-php-client / blob / v1-master / src /) на вашем сервере, затем используйте и сохраните идентификатор пользователя (объект токена идентификатора) для поиска или создания вашей записи пользователя, затем создайте файл cookie сеанса или токен. См. developers.google.com/identity/sign-in/web/backend. -auth   -  person Steven    schedule 17.01.2016
comment
$ curl -sS getcomposer.org/installer | php $ php composer.phar требует google / apiclient: dev-master $ php -a php ›require_once 'vendor / autoload.php'; php ›$ client = new Google_Client (['client_id' =› '‹web_client_id›']); php ›print_r ($ client-› verifyIdToken ('‹id_token_string›'));   -  person Steven    schedule 17.01.2016
comment
Спасибо :) Я бы хотел отметить это как ответ, но это комментарий: |   -  person wale.m    schedule 18.01.2016
comment
ОК, добавлено в качестве ответа.   -  person Steven    schedule 19.01.2016


Ответы (1)


Я бы предложил использовать токен идентификатора с серверной архитектурой, описанной в этот пост в блоге разработчиков Google:

  • Отправьте строку идентификатора токена (которая не является константой) на ваш сервер через HTTPS.

  • проверьте его с помощью библиотеки (например, open source на PHP от Google) на вашем сервере. Не забудьте указать свой веб-идентификатор клиента OAuth (он должен выглядеть как X.apps.googleusercontent.com).

$curl -sS getcomposer.org/installer | php

$php composer.phar require google/apiclient:dev-master

$php -a

php > require_once 'vendor/autoload.php';

php > $client = new Google_Client(['client_id' => 'web_client_id']);

php > print_r($client->verifyIdToken('id_token_string'));

  • успешная проверка этого токена для вашего идентификатора клиента - это то, что вы должны использовать вместо пароля для данного пользователя для безопасной аутентификации

  • используйте и сохраните идентификатор пользователя (поле «sub» идентификатора токена) как строку для поиска или создания вашей записи пользователя, а не адрес электронной почты, который может измениться

  • выпускает сеансовый cookie или токен для пользователя

Дополнительные сведения см. В руководстве разработчика.

person Steven    schedule 19.01.2016