需要查看您的路線配置以獲取更多信息,但會根據您提供的信息進行配置。
請注意,您將被重定向到http://localhost:8000/auth/login#_=_
。
這看起來像是在facebook上授權後,您將被重定向到您應用的登錄頁面。
在config/services.php
中,請確保對於您的Facebook登錄配置,您的url指向您在路由配置中定義的用於處理回調的路由。
例如
// config/services.php
...
'facebook' => [
'client_id' => 'my_facebook_client_id',
'client_secret' => 'my_facebook_client_secret',
'redirect' => 'http://localhost:8000/auth/facebook/callback',
],
...
路線http://localhost:8000/auth/facebook/callback
應該再在路由配置定義:
// app/Http/routes.php
...
Route::get('auth/facebook/callback', 'Auth\[email protected]');
...
注意路由的配置必須允許GET
請求,因爲用戶會被重定向。您的dd($user)
應該適用於此設置。
保存用戶數據的方式取決於您的模型架構。
例如,在你沒有其他的註冊方法,只使用Facebook登錄一個簡單的例子,你可以這樣做:
public function handleProviderCallback()
{
$facebookData = Socialite::driver('facebook')->user();
// check if already in DB
try{
$user = User::where('facebook_id', $data->id)->firstOrFail();
} catch (Illuminate\Database\Eloquent\ModelNotFoundException $e) {
// create a new user
$user = new User();
// set the properties you want
// $user->facebook_id = $data->id;
// ...
// then save
$user->save();
}
// login the user
Auth::login($user);
// perhaps return a redirect response
return redirect()->action('[email protected]');
}
我有一些想法,但要真正知道什麼是錯我需要看到你的AuthController文件 – andrewtweber