2016-07-15 38 views
0

我試圖使用laravel的Socialite包,我想知道如何將其他參數傳遞給回調url。看來,OAuth允許額外的參數,但我還沒有找到任何解決方法,如何通過它們。目前,我的方法是這樣的發送附加參數到社交包中的回調函數uri laravel

public function login($provider) 
    { 
     return Socialite::with($provider)->redirect(); 
    } 


    public function callback(SocialAccountService $service, $provider) 
    { 
     $driver = Socialite::driver($provider); 
     $user = $service->createOrGetUser($driver, $provider); 
     $this->auth()->login($user, true); 
     return redirect()->intended('/'); 

    } 

假設我想$user_role變量在我的回調方法。我如何通過它?

回答

1

如果你想傳遞一些數據,你需要使用狀態參數。

實例爲您提供

$provider = 'google'; 
return Socialite::with(['state' => $provider])->redirect(); 

回調函數:

$provider = request()->input('state'); 
$driver = Socialite::driver($provider)->stateless(); 

gist example

+0

是否與所有司機這個工作呢? – uruloke

+1

爲什麼[文檔說](https://github.com/laravel/socialite): 「使用'with'方法時,請注意不要傳遞任何保留的關鍵字,例如'state'或'response_type' 「。 – raphael