使用Socialite进行API身份验证

时间:2019-07-05 09:29:13

标签: php laravel laravel-5.8 laravel-socialite

我已经使用Passport实现了API身份验证,并尝试使用Socialite进行了同样的操作,但出现运行时异常错误

  

未根据请求设置会话存储

这是laravel 5.8文档之后的端点外观

Route::get('login/facebook', 'AuthController@facebookRedirect');

Route::get('login/facebook/callback', 'AuthController@facebookCallback');

在service.php文件中,我像这样添加了Facebook密钥

'facebook' => [
    'client_id'     =>  env('FACEBOOK_CLIENT_ID'),
    'client_secret' => env('FACEBOOK_CLIENT_SECRET'),
    'redirect'      => env('FACEBOOK_CALLBACK_URL'),
],

AuthController方法是

public function facebookRedirect()
{
    return Socialite::driver('facebook')->redirect();
}

public function facebookCallback()
{
    return Socialite::driver('facebook')->stateless()->user();

    $user->token;
}

在Postman和我的浏览器中,我这样调用api端点 http://localhost:8000/api/v1/login/facebook

我在做什么错?这是使用社交名流进行API身份验证的方法吗?

1 个答案:

答案 0 :(得分:0)

它认为您需要从功能stateless()中删除facebookCallback

  public function facebookCallback()
  {
    return Socialite::driver('facebook')->user();

    $user->token;
   }
`

如果您使用的是sessions,则不应使用stateless()