2013-06-19 52 views
1
// GET "giris-yap/facebook" 
public function action_facebook_index() 
{ 
    $facebook = IoC::resolve('facebook-sdk'); 
    $user = $facebook->getUser(); 

    if($user) 
    { 
     $profile = $facebook->api('/me'); 

     return View::make('home.login-facebook') 
      ->with('message_area', null) 
      ->with('username', $profile['username']); 
    } 
    else 
    { 
     return Redirect::to($facebook->getLoginUrl(array('next' => 'http://dugun.dev/giris-yap/facebook'))); 
    } 
} 

// POST "giris-yap/facebook" 
public function action_facebook_process() 
{ 
    $facebook = IoC::resolve('facebook-sdk'); 
    $user = $facebook->getUser(); 
    $profile = $facebook->api('/me'); 

    $input = Input::all(); 

    Auth::attempt(array('username' => $profile['username'], 'password' => $input['password'])); 

    if(Auth::check()) 
     return Redirect::to('account'); 
    else 
     return View::make('home.login-facebook') 
      ->with('message_area', 'Giriş denemesi başarısız.') 
      ->with('username', $profile['username']); 
} 

上面的代碼完美的作品在我的機器上「過多的重定向」錯誤,但我的朋友得到的兩個Chrome和Firefox的錯誤。Firefox和Chrome給出了下面的Facebook連接實現

Chrome:Error 310(net :: ERR_TOO_MANY_REDIRECTS):有太多重定向。

Firefox:Firefox檢測到服務器正在以永不完整的方式重定向該地址的請求。

它發生在這條線:

return Redirect::to($facebook->getLoginUrl(array('next' => 'http://dugun.dev/giris-yap/facebook'))); 

在理論;我重定向到Facebook,然後Facebook重定向到action_facebook_index(),並重復。但是,Facebook不應該重定向它。它應該向用戶顯示賦予應用程序權限的表單,然後重定向回去。這在我的個人電腦上正常工作,但我的朋友有上述問題。

有什麼我可以做的解決它嗎?

回答

0

的問題是Facebook應用程序中的SANbox模式之中,所以只能作爲應用程序擁有者,我公司已獲得所需的API。如果其他人提出了這個請求,Facebook將他們重定向回來,從而創建一個無限循環。

這件事是通過在Facebook上的應用程序設置關閉沙盒模式,並給予適當的權限來解決。

0

可能不會解決它,但你應該分開一些邏輯。檢查登錄Facebook用戶的部分應該位於Route過濾器中。然後刪除作爲參數傳遞給getLoginUrl方法的數組(Facebook自動重定向到請求頁面)。

也可能你的朋友關閉了cookies?

相關問題