Lumen上的Laravel Socialite:凭证不会被发送

时间:2015-10-14 20:58:32

标签: laravel lumen laravel-socialite

我正在尝试使用Lumen上的laravel / socialite实现社交登录到Linkedin。这是第一个登录步骤的控制器:

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

凭据存储在.env配置文件中:

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

当我访问我的链接时,控制器将我重定向到Linkedin,但我只是得到一个红色徽章说:

  

缺少客户端代码。有必要提供客户端代码   为了继续下去。

我怀疑laravel / socialite无法从.env文件中获取我的凭据。我想念一下吗?

这似乎是与Lumen相关的一般问题。通常我会看到许多包含一些“config / blabla.php”配置文件的Laravel软件包,但我不知道如何在Lumen上安全地实现这样的配置。

2 个答案:

答案 0 :(得分:4)

感谢约瑟夫的回答,我想出了一个解决方案 - 没有写新经理。

关键是能够在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下):

  • 在/bootstrap/app.php上,取消注释(或添加)该行:

    $ APP->寄存器( '应用\提供商\ AppServiceProvider');

  • 在app / Providers / AppServiceProvider.php上,填写 register()函数:

    公共职能登记册() {     $这个 - > APP->配置( '服务'); }

现在它有效!

答案 1 :(得分:0)

我们的Socialite Providers支持Lumen开箱即用,配置正确。我们直接从.env

解析环境变量