【问题标题】:Laravel Socialite on Lumen: credentials are not sent alongLumen 上的 Laravel 社交名流:不发送凭据
【发布时间】:2016-01-13 03:21:45
【问题描述】:

我正在尝试在 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 相关的一般问题。通常我会看到很多 Laravel 包包含一些“config/blabla.php”配置文件,但是我看不到如何在 Lumen 上安全地实现这样的配置。

【问题讨论】:

    标签: laravel lumen laravel-socialite


    【解决方案1】:

    我们的Socialite Providers 通过适当的配置支持开箱即用的 Lumen。我们直接从.env解析环境变量

    【讨论】:

      【解决方案2】:

      感谢 Joseph 的回答,我想出了一个解决方案 - 无需编写新的经理。

      重点在于在 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->register('App\Providers\AppServiceProvider');

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

        公共函数寄存器() { $this->app->configure('services'); }

      现在它可以工作了!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-11
        • 1970-01-01
        • 2016-01-01
        • 2015-08-20
        • 2018-03-14
        • 1970-01-01
        • 2021-02-10
        • 2016-09-11
        相关资源
        最近更新 更多