我试图在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(在不同的域上)时,它会崩溃。我认为代码的生成方式存在一些问题。无论如何要解决这个问题吗?
答案 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
表的示例
在provider
中:
access_token
编辑:
我为相同的https://packagist.org/packages/pimplesushant/laravelsocialiteapi创建了程序包