我試圖爲我的網站設置Bitbucket OAuth,但由於某種原因,Bitbucket沒有正確重定向回我的網站。我創建了一個OAuth密鑰和祕密,並且在我的Silex應用程序中使用了Guzzle OAuth插件。Bitbucket API OAuth沒有正確重定向
首先我通過oauth/request_token端點請求臨時令牌。使用該令牌我重定向到OAuth /驗證端點:
$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']));
}
);
這將彈出頁面上的到位桶網站,用戶可以授予或拒絕訪問他們的帳戶。當我點擊「允許訪問」到位桶應重定向回先前指定的回調URL,而是將我的回調URL追加到位桶網址是這樣的:
這顯然導致到位桶404頁。有沒有人有一個想法,爲什麼重定向到我的回調網址不能正常工作?
這是其中一個「我敢肯定我嘗試過,並沒有工作」的。回調中的urlencode是個問題。我以前沒有嘗試過urlencode,但當時顯然還有其他問題。很奇怪,bitbucket API文檔中的示例url是編碼的。僅供參考,OauthPlugin實際上添加了我沒有設置的必需參數。 – kielabokkie
編輯我的答案。請檢查。 – dario111cro