當用戶訪問我的網站時,我曾打開一個新窗口對用戶進行身份驗證,並通過我的應用程序請求許可(稱爲UseCase1)。但是當用戶已經登錄時,我試圖通過PHP SDK獲取已登錄的用戶信息,以便我不需要打開新窗口並檢查相同的內容(您將避免打開一個新的窗口,該窗口在同時由於用戶已經登錄)。但getUser()方法不會返回任何東西。當我通過UseCase1(打開自動關閉的新窗口)時,同樣的方法工作正常。 下面是我想使用的代碼:使用PHP SDK的Facebook登錄驗證無法正常工作?
$facebook = new Facebook(array(
'appId' => $appId,
'secret' => $appSecret,
'oauth' => true
));
$me = $facebook->getUser();
if ($me) {
try {
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
//code to redirect to login url
// USECASE1
// use $facebook->getUser() one USECASE1 is over
// now the user info is generated properly
}
}
所有時代的用戶通過USECASE1會(但有一個空的窗口,因爲用戶登錄和已驗證的應用程序),即使他已經登錄並且之前已經對應用程序進行了身份驗證。
任何想法,爲什麼這種情況正在發生
庫爾頓嗨, 我忘了提及的是,USECASE1是也稱爲if塊外部,通過日誌我已經檢查過,正在調用的USECASE1是否是塊外的一個。所以,$我永遠不會被設置。正如我所說的流程超出了if塊,然後到USECASE1,然後$ facebook-> getUser()工作正常。 –