使用Laravel Socialite和API?

时间:2016-03-13 04:47:03

标签: php laravel laravel-socialite

我试图在api上使用Laravel Socialite包。我尝试将代码传递给我的api以获取用户,但它一直给我一个错误:

Fatal error: Call to a member function pull() on null

由于我通过API执行请求,因此我采取以下步骤。

向api发送请求以获取代码:

Socialite::with('facebook')->stateless()->redirect()->getTargetUrl()

然后使用上面提取的网址发出请求,该网址会使用code参数重定向。

将代码发送到api并获取用户:

$fb_user = Socialite::with('facebook')->user();

这是崩溃的地方。我不确定为什么。

之前我使用过该软件包,当我只有一个重新加载页面的应用程序时,它工作正常。但当我将它发送到api(在不同的域上)时,它会崩溃。我认为代码的生成方式存在一些问题。无论如何要解决这个问题吗?

2 个答案:

答案 0 :(得分:19)

刚刚找到我的答案。需要在两个调用中使用stateless

Socialite::with('facebook')->stateless()->redirect()->getTargetUrl()

$fb_user = Socialite::with('facebook')->stateless()->user();

希望这有助于某人。

答案 1 :(得分:2)

我制作了B和网址(POST请求)A,该网址接受B// Place this method in Class B void test(){ } //In the main method A a = new B(); // a.test(); // The test method will not be available in class `A`, though the instantation of `a` is of type `B`.

SocialController.php是一个laravel模型,您将在其中使用provider和provider_user_id以及本地数据库用户ID。以下是/api/social-login表的示例

enter image description here

provider中:

access_token

编辑:

我为相同的https://packagist.org/packages/pimplesushant/laravelsocialiteapi创建了程序包