我在社交网站/facebook上取得了成功。
我的代码——
配置/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('/');
所以我在这里找到了解决方案:http://laravel.io/forum/08 - 03 - 2014重定向- -第二最后一页的
My solved code:
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'));
}
在https://developers.facebook.com
中选择您的应用程序,并通过仪表板中可用的App Review
选项,使您的应用程序公开并完全填写审批标准
我的主要观点是,你的一切都很好,只是在facebook应用程序的开发者仪表板上做了一些小的改变。