Laravel Lumen 上的社交名流:凭据未一起发送
Laravel Socialite on Lumen: credentials are not sent along
我正在尝试使用 laravel/socialite 在 Lumen 上实现对 Linkedin 的社交登录。这是第一个登录步骤的控制器:
public function loginLinkedin()
{
return Socialite::driver('linkedin')->redirect();
}
凭据存储在 .env 配置文件中:
LINKEDIN_ID=123whatever
LINKEDIN_SECRET=123whatever
LINKEDIN_URL=http://localhost/linkedin
当我访问我的 link 时,控制器将我重定向到 Linkedin,但我只是收到一个红色徽章,上面写着:
The client code is missing. It's necessary to provide a client code in
order to continue.
我怀疑 laravel/socialite 无法从 .env 文件中获取我的凭据。我错过了什么吗?
这似乎是与 Lumen 相关的普遍问题。通常我看到很多 Laravel 包包含一些 "config/blabla.php" 配置文件,但我不知道如何在 Lumen 上安全地实现这样的配置。
感谢 Joseph 的回答,我想出了一个解决方案 - 无需编写新的管理器。
重点是关于在 Lumen 上读取配置文件的能力,因为微框架通常会从 .env 文件中检索所有配置数据。
第一步是编辑 /vendor/laravel/socialite/src 下的原始 SocialiteManager.php,以便使用 getenv()[=38 从 .env 文件中检索 Linkedin 配置=] 命令。有效!我到达了 Linkedin 身份验证表单并能够正确登录,返回回调 URL。
所以现在的问题是删除 SocialiteManager.php 上的编辑并保持原样。我如何读取存储 Linkedin 配置的 /config/services.php 文件?
以下 post 前来救援:https://laracasts.com/discuss/channels/lumen/cant-get-config-data-in-lumen
它表示可以按照以下步骤加载常规 Laravel 配置文件(在 /config 下):
在 /bootstrap/app.php 上,取消注释(或添加)行:
$app->注册('App\Providers\AppServiceProvider');
上app/Providers/AppServiceProvider.php,填写register()函数:
public 函数寄存器()
{
$this->app->configure('services');
}
现在可以使用了!
我们的 Socialite Providers 通过适当的配置支持开箱即用的 Lumen。我们直接从.env
解析环境变量
我正在尝试使用 laravel/socialite 在 Lumen 上实现对 Linkedin 的社交登录。这是第一个登录步骤的控制器:
public function loginLinkedin()
{
return Socialite::driver('linkedin')->redirect();
}
凭据存储在 .env 配置文件中:
LINKEDIN_ID=123whatever
LINKEDIN_SECRET=123whatever
LINKEDIN_URL=http://localhost/linkedin
当我访问我的 link 时,控制器将我重定向到 Linkedin,但我只是收到一个红色徽章,上面写着:
The client code is missing. It's necessary to provide a client code in order to continue.
我怀疑 laravel/socialite 无法从 .env 文件中获取我的凭据。我错过了什么吗?
这似乎是与 Lumen 相关的普遍问题。通常我看到很多 Laravel 包包含一些 "config/blabla.php" 配置文件,但我不知道如何在 Lumen 上安全地实现这样的配置。
感谢 Joseph 的回答,我想出了一个解决方案 - 无需编写新的管理器。
重点是关于在 Lumen 上读取配置文件的能力,因为微框架通常会从 .env 文件中检索所有配置数据。
第一步是编辑 /vendor/laravel/socialite/src 下的原始 SocialiteManager.php,以便使用 getenv()[=38 从 .env 文件中检索 Linkedin 配置=] 命令。有效!我到达了 Linkedin 身份验证表单并能够正确登录,返回回调 URL。
所以现在的问题是删除 SocialiteManager.php 上的编辑并保持原样。我如何读取存储 Linkedin 配置的 /config/services.php 文件?
以下 post 前来救援:https://laracasts.com/discuss/channels/lumen/cant-get-config-data-in-lumen
它表示可以按照以下步骤加载常规 Laravel 配置文件(在 /config 下):
在 /bootstrap/app.php 上,取消注释(或添加)行:
$app->注册('App\Providers\AppServiceProvider');
上app/Providers/AppServiceProvider.php,填写register()函数:
public 函数寄存器() { $this->app->configure('services'); }
现在可以使用了!
我们的 Socialite Providers 通过适当的配置支持开箱即用的 Lumen。我们直接从.env