サイトに 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 サイトのページが表示されます。[Grant access] をクリックすると、Bitbucket は以前に指定されたコールバック URL にリダイレクトする必要がありますが、代わりに、次のようにコールバック URL を Bitbucket URL に追加します。
これは明らかに Bitbucket 404 ページになります。コールバック URL へのリダイレクトが正しく機能しない理由を知っている人はいますか?