2015-10-14 69 views
2
發送

我正在嘗試使用Lumen上的laravel/socialite實現社交登錄。這是第一次登錄步,控制器:Lumen上的Laravel Socialite:憑證不會沿着

public function loginLinkedin() 
    { 
    return Socialite::driver('linkedin')->redirect(); 
    } 

的憑據存儲在.ENV配置文件:

LINKEDIN_ID=123whatever 
LINKEDIN_SECRET=123whatever 
LINKEDIN_URL=http://localhost/linkedin 

當我訪問我的鏈接,控制器重定向我LinkedIn,但我簡單地得到一個紅色的徽章說:

客戶端代碼丟失。有必要提供 的客戶端代碼以便繼續。

我懷疑laravel/socialite無法從.env文件獲取我的憑據。我想念什麼?

這似乎是與流明相關的一般性問題。通常我會看到許多包含一些「config/blabla.php」配置文件的Laravel軟件包,但我沒有看到如何在Lumen上安全地實現這種配置。

回答

3

感謝約瑟夫的回答,我想出了一個解決方案 - 沒有寫一個新的經理。

整個問題的關鍵是能否讀取Lumen上的配置文件,因爲微框架通常會從.env文件中檢索所有配置數據。

第一步是編輯/ vendor/laravel/socialite/src下的原始SocialiteManager.php,以便使用getenv()命令從.env文件中檢索Linkedin配置。有效!我到達Linkedin身份驗證表單並能夠正確登錄,並返回到回調URL。

所以現在的問題是刪除SocialiteManager.php上的編輯並保持原來的。我如何閱讀存儲Linkedin配置的/config/services.php文件?

以下後前來救援:https://laracasts.com/discuss/channels/lumen/cant-get-config-data-in-lumen

它說,這是可能加載按照以下步驟定期Laravel配置文件(/ config下):

  • 上/引導/應用程序。 php,取消註釋(或添加)該行:

    $ app-> register('App \ Providers \ AppServiceProvider');

  • 上的應用/供應商/ AppServiceProvider.php,在寄存器()函數填寫:

    公共功能寄存器(){ $ 這 - > APP->配置( '服務'); }

現在它工作!