laravel 如果应用已被允许,facebook 不会重定向回来
laravel facebook no redirect back if app allowed already
我用 socialite/facebook 进行了授权。
我的代码--
config/services.php:
'facebook' => [
'client_id' => 'client_id',
'client_secret' => 'client_secret',
'redirect' => 'http://www.example.com/facebook/callback',
],
routes.php:
Route::get('facebook', 'FacebookController@redirectToProvider');
Route::get('facebook/callback', 'FacebookController@handleProviderCallback');
FacebookController.php:
public function redirectToProvider()
{
return Socialite::with('facebook')->redirect();
}
public function handleProviderCallback(Request $request, User $user)
{
$users = Socialite::with('facebook')->user();
// user registration and login
// if the user is in the database, just login
return redirect()->back();
}
一切正常,注册、登录和重定向直到一点。
如果该应用已被允许,它会正常重定向回来。如果您首先使用 Facebook 进行身份验证并允许该应用程序,它不会重定向。
但是,如果重定向是主页:
return redirect('/');
那也行。
在 https://developers.facebook.com
中选择您的应用,然后通过控制面板中可用的 App Review
选项,制作您的应用 public 并完全填写批准标准
我的主要观点是,只要在 Facebook 应用程序的开发人员仪表板上进行一些小的更改,您就可以了。
所以我在这里找到了解决方案:
http://laravel.io/forum/08-03-2014-redirect-to-the-second-last-page
我解决的代码:
public function redirectToProvider()
{
// added this
Session::flash('url',$_SERVER['HTTP_REFERER']);
return Socialite::with('facebook')->redirect();
}
public function handleProviderCallback(Request $request, User $user)
{
$users = Socialite::with('facebook')->user();
// user registration and login
// if the user is in the database, just login
// redirect changed from redirect()->back(); to this
return Redirect::to(Session::get('url'));
}
我用 socialite/facebook 进行了授权。
我的代码--
config/services.php:
'facebook' => [
'client_id' => 'client_id',
'client_secret' => 'client_secret',
'redirect' => 'http://www.example.com/facebook/callback',
],
routes.php:
Route::get('facebook', 'FacebookController@redirectToProvider');
Route::get('facebook/callback', 'FacebookController@handleProviderCallback');
FacebookController.php:
public function redirectToProvider()
{
return Socialite::with('facebook')->redirect();
}
public function handleProviderCallback(Request $request, User $user)
{
$users = Socialite::with('facebook')->user();
// user registration and login
// if the user is in the database, just login
return redirect()->back();
}
一切正常,注册、登录和重定向直到一点。
如果该应用已被允许,它会正常重定向回来。如果您首先使用 Facebook 进行身份验证并允许该应用程序,它不会重定向。
但是,如果重定向是主页:
return redirect('/');
那也行。
在 https://developers.facebook.com
中选择您的应用,然后通过控制面板中可用的 App Review
选项,制作您的应用 public 并完全填写批准标准
我的主要观点是,只要在 Facebook 应用程序的开发人员仪表板上进行一些小的更改,您就可以了。
所以我在这里找到了解决方案: http://laravel.io/forum/08-03-2014-redirect-to-the-second-last-page
我解决的代码:
public function redirectToProvider()
{
// added this
Session::flash('url',$_SERVER['HTTP_REFERER']);
return Socialite::with('facebook')->redirect();
}
public function handleProviderCallback(Request $request, User $user)
{
$users = Socialite::with('facebook')->user();
// user registration and login
// if the user is in the database, just login
// redirect changed from redirect()->back(); to this
return Redirect::to(Session::get('url'));
}