我在我的網站上使用Facebook連接,除了一個小(但煩人的)細節外,它工作正常。每當用戶登錄時,他們都會返回到原來的url,除了在url的末尾添加了一個額外的部分。例如,如果頁面www.domain.com,則通過Facebook登錄後,新的URL會是這樣的:facebook連接後登錄網址額外的值
www.domain.com/?state=407abe669787e4a97dc80c93d7ba5eae&code=AQDu0Vjf1hvo7N-TPmdsBygQCIxs7LfEfNMlf1aKNiyOeuAtDbIo-zTzWqWF7yv_Jsp4YOfkjQHqx17zsiCPYKxLyeL3BMdNr0HFnEu7Q50Hc2Ca92VfiDl9VWQJUDRYwjPDkpyZPJHOIkInaRA9xTivtuUtb5VCUGNvHSU7hRgb3muK-EKJ1p5iEnRjN1y7_Y8#_=_
我使用的是最新的Facebook的PHP SDK(3.1.1版截至目前)和我得到的登錄網址就像在這裏顯示的例子:https://developers.facebook.com/docs/reference/php/facebook-getLoginUrl/通過調用
$facebook->getLoginUrl(array('scope' => 'email', 'display' => 'touch'));
,它創建了該URL看起來是正確的,是這樣的:
https://www.facebook.com/dialog/oauth?client_id=124847107591285&redirect_uri=http%3A%2F%2Fdomain.com&state=407abe669787e4a97dc80c93d7ba5eae&scope=email&display=touch
我喜歡它,以便用戶返回到登錄後的url完全像它一樣,沒有額外的狀態和代碼值。我還沒有看到文檔中提到的任何內容,這真的讓我感到困擾。
我想知道是否有其他人遇到過這個問題,如果有的話,是否有解決方案。
嗯好吧我不知道我是如何錯過的。我假設自PHP SDK頁面開始說「通過手動管理訪問令牌的需要,PHP SDK極大地簡化了認證過程並授權用戶爲您的應用程序」(https://developers.facebook.com/docs/reference/php /)我不認爲我必須處理auth令牌,所以我不確定它爲什麼在SDK中的對象已經有權訪問它的時候給它發送給我。 在包含在SDK中的示例中,它也會在登錄後返回URL中的狀態和代碼。我想我會做一個重定向並清除$ _GET。 – somomomo