我正在使用SDK v.4,但類FacebookRedirectLoginHelper方法isValidRedirect出現問題。Facebook isValidRedirect總是返回false
的SDK的代碼是
protected function isValidRedirect()
{
return $this->getCode() && isset($_GET['state'])
&& $_GET['state'] == $this->state;
}
雖然$_GET['state']
是在回調URL的參數和$this->state
由它產生的密碼安全pseudrandom號碼的功能random()
分配。
$ _GET ['state']和$ this-> state;永遠不會回報真實!
應該檢查$ _SESSION不是$ _GET
請問你能解釋一下你的答案嗎?如何避免以上情況發生?即$ _GET ['state']&$ this->狀態不匹配。 – 2015-03-10 09:52:32
當facebook返回到我的網址時,它再次調用getLoginUrl()函數。 所以我的問題是,是否有條件像if($ _ SESSION ['FBRLH_state'] ==''),然後只調用函數getLoginUrl()? – 2015-03-10 12:01:39
'getLoginUrl()'函數不會進行API調用,因此它在代碼中再次被調用應該沒有關係。更好的做法是尋找'$ _GET ['code']',因爲這將是Facebook在登錄時返回的內容。看看我的例子:https://www.webniraj。com/2014/05/01/facebook-api-php-sdk-updated-to-v4-0-0/ – 2015-03-11 11:53:06