Google Oauth IMAP每次都要求获得许可



我目前正在开发一个基于web的邮件服务(它不是一个真正的邮件客户端,但有很多东西需要解释)。然而,在此之前我从未使用过oauth,但它似乎是可行的方法,我基于示例代码创建了简单的类。然而,示例代码没有提供多次签名的解决方案,或者我错过了它。

所以基本上我的问题是,每次我登录我需要再次授权到gmail,而我看到其他服务,你做了一次,之后你只是登录并立即重定向回来没有接受再次。

编辑:澄清一下,我使用oauth登录和IMAP,这是愚蠢的吗?我认为这是最好的方式,因为把OpenID和oauth连接到同一个用户似乎很奇怪,因为我的应用程序真正做的是通过oauth围绕谷歌应用程序imap。我认为这是一个难题。我的工作方式,因为我只需要授权一次,下次谷歌立即重定向我回来,我希望我的应用程序以这种方式工作。

Edit2:经过进一步搜索,似乎授权是第一次,然后我应该使用认证,因为英语不是我的第一语言,我认为他们意味着同样的事情。所以问题是,当已经创建帐户的用户再次登录时,我如何与google进行身份验证,以便我不需要每次都生成新的令牌。

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默认将approval_prompt设置为"force"

希望对大家有所帮助

使用google API,您可以将1次验证cookie转换为永久验证cookie。如果您将这个新的永久身份验证cookie存储在数据库或其他地方,您可以将它用于特定的用户,而不是每次生成一个新的身份验证cookie。

像这样:

$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);

最新更新