我是 Oauth 实施的新手,一直在网上搜索我可以使用的库,我找到了Manuel Lemos 的 Oauth Client。
无论如何,我现在遇到的问题是每次会话到期时重新授权。
我想在我的项目中使用 facebook、twitter、yahoo 和 google 来实现 Oauth。
我已经设法让它工作,但我认为在获得访问令牌并且应用程序已被用户授权后,我会迷失方向。
我在使用yahoo、twitter和google (Facebook 除外)时遇到了这个问题,其中当访问令牌(或会话)过期并再次使用这些“服务器”时,它总是重定向回授权页面并要求用户授权应用程序(再次)。
我应该怎么做才能让雅虎、推特和谷歌只授权一次(撤销权限除外),当用户返回并再次使用它时,它会自动获取用户数据而无需再次请求授权?
这是执行请求的代码的一部分:
if( ( $success = $client->Initialize() ) )
{
if( ( $success = $client->Process() ) )
{
if( strlen( $client->access_token ) )
{
$success = $client->CallAPI(
$apiurl
, 'GET'
, $apiqry
, array( 'FailOnAccessError'=>true )
, $user);
}
elseif(strlen($client->authorization_error))
{
$client->error = $client->authorization_error;
$success = false;
}
}
$success = $client->Finalize($success);
}
我尝试了以下解决方案,但没有运气:(
Twitter OAuth - 检查是否授予对应用程序的访问权限
Twitter - 已经有 OAuth 数据库,我怎么知道用户是谁?
和一堆其他人,但他们都没有工作..
谢谢!