2013-06-19 20 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?

相关问题