根据我对OAuth的理解,流程是:
- 获取未签名的请求令牌
- 通过获取用户授权获取已签名的请求令牌
- 获取访问令牌
我想使用php-ccurl来自动获得签名的请求令牌。一旦我有了未签名的请求令牌,我想要一个函数来访问授权url,登录并返回授权的请求令牌。基本上模仿用户名和密码的基本授权。这可能吗?
我知道这不可能是一个通用的解决方案,因为curl postdata必须是特定于网站的。
感谢
这里有一些代码,我希望它能帮助你展示我正在尝试做什么
function login($username, $password) {
$url = 'https://www.scoop.it/oauth/authorize?' . http_build_query(array('oauth_token' => $requestToken['oauth_token'], 'oauth_callback' => $callbackurl));
$postdata = "email=".$username."&password=".$password;
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch)
curl_close ($ch);
}
您的脚本需要:
- 获取未经授权的请求令牌
- 使用令牌和回调URL将用户重定向到授权URL
您已经完成了步骤1;获取访问令牌。现在,您必须告诉用户的浏览器重定向到授权URL。
header('HTTP/1.1 301 Moved Permanently');
header('Location: '.$AUTHORIZE_URL_WITH_TOKEN);
请记住,您必须在发生第一个print()
或echo()
之前发送所有标头。