Google Oauth IMAP запрашивает разрешение каждый раз - PullRequest
1 голос
/ 05 мая 2011

В настоящее время я работаю над почтовым веб-сервисом (это не совсем почтовый клиент, но многое можно объяснить). Тем не менее, я никогда не работал с oauth до этого, но похоже, что так и есть, я основал свои простые классы на коде sampel . Однако пример кода не предоставляет решения по подписыванию несколько раз, или я его пропустил.

Так что, в основном, моя проблема в том, что каждый раз, когда я вхожу в систему, мне нужно снова авторизоваться на gmail, когда я видел другие сервисы, где вы делаете это один раз, и после этого вы просто входите в систему и мгновенно перенаправляетесь обратно, не принимая снова.

Редактировать: Чтобы уточнить, я использую oauth как для входа в систему и для IMAP, это глупо? Я подумал, что это был лучший способ, так как кажется странным, что и OpenID, и oauth подключены к одному и тому же пользователю, когда все мое приложение на самом деле сосредоточено вокруг imap-приложений google через oauth. Я думаю, что tungle.me работает таким образом, поскольку мне нужно только авторизоваться там один раз, и в следующий раз, когда Google мгновенно перенаправит меня обратно, я хочу, чтобы мое приложение работало именно так.

Edit2: После дальнейшего поиска кажется, что авторизация впервые, а затем я должен использовать Аутентификацию, так как английский не мой первый язык, хотя они имели в виду то же самое. Поэтому возникает вопрос, как пройти аутентификацию в Google, когда пользователь, который уже создал учетную запись, снова входит в систему, чтобы мне не приходилось каждый раз генерировать новые токены.

Ответы [ 2 ]

5 голосов
/ 10 августа 2012
require_once './oauth/apiClient.php';
require_once './oauth/contrib/apiPlusService.php';
$client = new apiClient();
$client->setApplicationName("Name");
$client->setScopes(array('https://www.googleapis.com/auth/plus.me'));
$client->setApprovalPrompt (auto);

... последний решает проблему, так как по умолчанию apiClient задает для параметраree_prompt значение «force»

Надеюсь, это кому-нибудь поможет

0 голосов
/ 05 мая 2011

Используя API Google, вы можете превратить одноразовый куки-файл аутентификации в постоянный куки-файл аутентификации.Если вы сохраняете этот новый постоянный куки-файл авторизации в базе данных или где-то еще, вы можете использовать его для этого конкретного пользователя вместо того, чтобы каждый раз генерировать новый куки-файл аутентификации.

Примерно так:

$client = new Zend_Gdata_HttpClient();
$client->setAuthSubPrivateKeyFile('key.pem', null,false);
$uri = Zend_Gdata_AuthSub::getAuthSubTokenUri($next, $scope, $secure, $session)
$gCalToken = Zend_Gdata_AuthSub::getAuthSubSessionToken(trim($uri),$client);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...