【发布时间】:2020-06-11 06:16:15
【问题描述】:
我一直在尝试使用 PHP 的标准 PECL OAuth 库连接 Yahoo 的 OAuth 服务。当我尝试单击登录页面上的提交时,服务器应重定向到雅虎并要求用户登录,然后重定向回我的站点。提交后,我得到一个页面重定向到雅虎,但我得到一个“呃哦......看起来出了点问题”,这只是因为 var_dump 行(见下面的代码)。如果我省略 var_dump 语句并单击提交,请求将挂在我网站的登录页面上,不会去任何地方。
我可以根据 Yahoo 的 OAuth 指令使用使用者密钥、秘密和回调 url(对于我的网站)成功地在地址窗口中手动构建 url,它将重定向到我指示的位置,但我做不到通过 php 以编程方式。
不确定php库是否不支持yahoo的服务,是否我的服务器配置不正确或其他问题。我会说我在过去(几年前)能够连接到 Yahoo 的 Oauth 服务,但我知道他们的 OAuth 服务从那以后发生了变化,并且使用的是不同的服务。
代码:
$o = new OAuth( $consKey, $consSecret,
OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_FORM );
$o->setVersion('2.0');
$o->setTimestamp(mktime());
$o->enableDebug();
$request_token = NULL;
try {
$response = $o->getRequestToken( "https://api.login.yahoo.com/oauth2/request_auth", [my location]);
$request_token = $response['oauth_token'];
$request_secret = $response['oauth_token_secret'];
fwrite($log, "\n". $mydate . ' token is ' . $request_token);
} catch( \OAuthException $e ) {
fwrite($log, "\n" . $mydate . 'Error: ' . $e->getMessage());
}
Apache 错误日志只返回 $request_token 和 $request_secret 索引为空。我已尽力从以前的帖子中找到答案,但没有成功。感谢任何帮助。
【问题讨论】:
-
是否需要其他信息?感谢我能得到的任何帮助。