我需要动态配置我的提供程序。
$config = [ 'client_id' = 'xxxxxxx', 'client_token' = 'xxxxxxx', 'redirect' = 'http://example.com/' ]; return Socialite::with($provider)->setConfig($config)->redirect();
但遗憾的是没有函数setConfig。
我需要设置provider,client_id,client_secret并动态重定向
有什么想法吗?
谢谢!
答案 0 :(得分:2)
您可以使用Socialite buildProvider
方法,例如:
$config = [
'client_id' = 'xxxxxxx',
'client_token' = 'xxxxxxx',
'redirect' = 'http://example.com/'
];
return Socialite::buildProvider(\Laravel\Socialite\Two\FacebookProvider::class, $config);
在https://github.com/laravel/socialite/tree/2.0/src
中的\Laravel\Socialite\Two\FacebookProvider::class
/ One
文件夹中提供的Two
与您的服务(如果不同)交换的位置
答案 1 :(得分:0)
我使用以下服务提供商为每个提供商填空redirect
。
可以修改它以便动态更新配置。这完全取决于你想要做的事情。
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class SocialServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
collect(config('services'))
->only(config('social.providers'))
->reject(function($config) {
return array_get($config, 'redirect', false);
})
->each(function($config, $key) {
$url = url("login/{$key}/callback", [], true);
config(["services.{$key}.redirect" => $url]);
});
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
}
}