2015-10-14 46 views
2

我的第一個問題:是否有可能在本地主機上測試? (因爲我可以想象這可能是我的問題)Laravel Facebook登錄 - 沒有回調(本地主機)

我閱讀文檔並做了所有描述。我瀏覽到/ auth/facebook,我被重定向到Facebook,在那裏我「接受」了這些條款。我被重定向到這個鏈接:http://localhost:8000/auth/login#_=_

所以我試圖調試,並在我的Authcontroller中做了dd($user);,但沒有給出輸出。

public function redirectToProvider() 
    { 
     return Socialite::driver('facebook')->redirect(); 
    } 

    public function handleProviderCallback() 
    { 
     $user = Socialite::driver('facebook')->user(); 
     dd($user); 

     // $user->token; 
    } 

任何一個想法我做錯了什麼?

+0

我有一些想法,但要真正知道什麼是錯我需要看到你的AuthController文件 – andrewtweber

回答

2

需要查看您的路線配置以獲取更多信息,但會根據您提供的信息進行配置。

請注意,您將被重定向到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]'); 
} 
+0

謝謝!我錯誤地解釋了''重定向'=>'http:// localhost:8000/auth/facebook/callback',' 我以爲它應該在登錄成功後成爲所需的重定向URL。 – RW24

+0

您解釋正確。重定向確實是登錄成功後所需的重定向url。唯一的問題是你不希望該URL成爲你的常規登錄頁面,因爲你會要求用戶在登錄Facebook之後登錄。 很高興我能幫到你。乾杯! – Prynz

+0

如何將用戶信息放入數據庫並將其登錄?我找不到這樣的例子。 :/ – RW24