我尝试在Lumen (5.1)系统中使用Laravel\Socialite包
我在config\services.php文件中添加了这个:
<?php
//Socialite
'facebook' => [
'client_id' => '##################',
'client_secret' => '##################',
'redirect' => 'http://local.dev/admin/facebook/callback',
],
Run Code Online (Sandbox Code Playgroud)
在bootstrap\app.php文件中:
class_alias(Laravel\Socialite\Facades\Socialite::class, 'Socialite');
$app->register(Laravel\Socialite\SocialiteServiceProvider::class);
Run Code Online (Sandbox Code Playgroud)
然后我为 facebook 身份验证创建了一个控制器:
<?php
namespace App\Http\Controllers\Facebook;
use App\Http\Controllers\Controller;
use Laravel\Socialite\Contracts\Factory as Socialite;
class FacebookController extends Controller
{
public function redirectToProviderAdmin()
{
return Socialite::driver('facebook')->scopes(['manage_pages', 'publish_actions'])->redirect();
}
public function handleProviderCallbackAdmin()
{
$user = Socialite::driver('facebook')->user();
}
}
Run Code Online (Sandbox Code Playgroud)
并在routes.php:
$app->get('/admin/facebook/login', 'App\Http\Controllers\Facebook\FacebookController@redirectToProviderAdmin');
$app->get('/admin/facebook/callback', 'App\Http\Controllers\Facebook\FacebookController@handleProviderCallbackAdmin');
Run Code Online (Sandbox Code Playgroud)
我只是按照文档进行操作,根据我的需要进行更改。当我转到页面时http://local.dev/admin/facebook/login,出现以下错误:
非静态方法 Laravel\Socialite\Contracts\Factory::driver() 不能静态调用,假设 $this 来自不兼容的上下文
事实上,根据代码,驱动程序函数必须是实例化的。 …