我正在開發一個可讓用戶使用Facebook登錄的Web應用程序。
的流程是:
1.點擊登錄與FB
2.登錄FB
3.重定向回Web應用程序從Facebook註銷時遇到的問題
出於安全的原因(應用程序將要在iPad上運行在客戶商店中)我需要在從FB接收到響應後立即從Facebook註銷用戶 - 該應用不再與FB API交互)。
用戶登錄到FB之後,將出現一個批准對話框,它可以讓用戶
1.到應用授予訪問權限
2.拒絕訪問該應用
然後,用戶被重定向到該應用,其中響應被處理。
public function facebook()
{
try {
$fbUser = Faceoff::me();
$user = UserCreator::withProfile($fbUser);
Auth::login($user);
$url = Faceoff::getLogoutUrl(['next' => 'url to protected area']);
} catch (\Exception $e) {
$url = Faceoff::getLogoutUrl(['next' => 'url to login page']);
}
Faceoff::destroySession();
return Redirect::to($url);
}
如果用戶授予訪問執行try
塊中,如果用戶拒絕訪問,轉而執行catch
塊和註銷URL與適當next
參數被生成。
用戶將被重定向到該註銷URL。 目前爲止這麼好。
問題是:如果用戶沒有授予對應用程序的訪問權限,我無法從FB註銷用戶。
但我可以,如果訪問被授予。
有沒有解決方案,或這是打算的行爲?
PS-1:Faceoff
只是Laravel的包裝。
PS-2:對於這樣的故事,我只是需要你知道我想要達到的目標以及問題的起點。
謝謝任何可能導致解決方案!
當然這是有意的行爲,否則我訪問過的任何網站都可能使我退出FB,無論我是否希望這樣做 - 因此它需要一個活動的用戶訪問令牌。 – CBroe
順便說一句,讓大量用戶以頻繁的方式登錄非常有限的設備是不明智的 - 這很有可能觸發Facebook的安全算法,這會讓人覺得有些黑幕正在發生......並且可能會導致您的用戶不得不回答額外的安全問題,在自己的帳戶中遇到其他麻煩,直到您的應用被阻止。 – CBroe
是的,我從這一點看,這是正確的行爲。 如果你把你的評論變成答案,我可以標記它!謝謝。 順便說一句,完全放棄iPad的想法。 – Andreyco