Php 动态拉威尔社会名流构型
我需要动态配置我的提供者 但不幸的是,没有函数setConfig 我需要设置提供者、客户端id、客户端机密和动态重定向 有什么想法吗Php 动态拉威尔社会名流构型,php,laravel,oauth,oauth-2.0,laravel-socialite,Php,Laravel,Oauth,Oauth 2.0,Laravel Socialite,我需要动态配置我的提供者 但不幸的是,没有函数setConfig 我需要设置提供者、客户端id、客户端机密和动态重定向 有什么想法吗 谢谢大家! 您可以使用社交名媛buildProvider方法,如: $config = [ 'client_id' = 'xxxxxxx', 'client_token' = 'xxxxxxx', 'redirect' = 'http://example.com/' ]; return Socialite::buildPro
谢谢大家! 您可以使用社交名媛
buildProvider
方法,如:
$config = [
'client_id' = 'xxxxxxx',
'client_token' = 'xxxxxxx',
'redirect' = 'http://example.com/'
];
return Socialite::buildProvider(\Laravel\Socialite\Two\FacebookProvider::class, $config);
其中
\Laravel\Socialite\Two\FacebookProvider::class
将与您的服务(如果不同)交换,如One
/Two
中的任何一个文件夹中提供的,我使用以下服务提供程序为每个空的提供程序自动填写重定向
可以修改它以动态更新您的配置。我想这完全取决于你想做什么
<?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()
{
}
}
还有一点,我不明白如何更改\Laravel\Socialite\Two\FacebookProvider::class服务,例如,如果我包含了其他instagram提供商。。。你能解释一下吗?你可以为Instagram提供商使用以下软件包:)我明白了,它可以工作。当我设置\Laravel\Socialite\One\TwitterProvider::classs时,我遇到了一个新问题。抱歉,我明白了,它是有效的。当我设置\Laravel\Socialite\One\TwitterProvider::class时,我遇到了一个新问题-它返回错误“类型错误:传递给Laravel\Socialite\One\AbstractProvider的参数2::\uu construct()必须是League\OAuth1\Client\Server\Server的实例,字符串给定,在第92行的/home/vagrant/Code/my project/vendor/laravel/socialite/src/SocialiteManager.php中调用,并且\laravel\socialite\One\BitbucketProvider::class相同的错误调用回调时这不起作用,它使UnAutoRead 401错误,也请考虑同时改变URL动态。
<?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()
{
}
}