我是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 - checking if access to application is granted
Twitter - Already have OAuth database, how do I know who the user is?
Twitter api authorization of my application
以及其他一些人,但他们都没有工作..
谢谢!