我正在尝试为我的网站设置 Bitbucket OAuth,但由于某种原因,Bitbucket 没有正确重定向回我的网站。我已经创建了 OAuth 密钥和秘密,并且在我的 Silex 应用程序中使用了 Guzzle OAuth 插件。
首先,我通过 oauth/request_token 端点请求一个临时令牌。使用该令牌我重定向到 oauth/authenticate 端点:
$app->get(
'/auth/bitbucket',
function () use ($app) {
$client = new Client('https://bitbucket.org/api/1.0');
$oauth = new OauthPlugin(
array(
'consumer_key' => $app['bitbucket.key'],
'consumer_secret' => $app['bitbucket.secret'],
'signature_method' => 'HMAC-SHA1',
'callback' => urlencode('http://mysite.local/auth/bitbucket/callback')
)
);
$client->addSubscriber($oauth);
$response = $client->post('oauth/request_token')->send();
parse_str($response->getBody(), $result);
return $app->redirect(sprintf('https://bitbucket.org/api/1.0/oauth/authenticate?oauth_token=%s', $result['oauth_token']));
}
);
这将在 Bitbucket 网站上打开页面,用户可以在该页面上授予或拒绝对其帐户的访问权限。在我单击“授予访问权限”后,Bitbucket 应该重定向回之前指定的回调 url,但它会将我的回调 url 附加到 Bitbucket url,如下所示:
这显然会产生一个 Bitbucket 404 页面。有谁知道为什么重定向到我的回调 url 不能正常工作?