【问题标题】:API authentication with Socialite社交名流的 API 身份验证
【发布时间】:2019-11-15 22:12:28
【问题描述】:

我已使用 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 身份验证的方式吗?

【问题讨论】:

    标签: php laravel laravel-5.8 laravel-socialite


    【解决方案1】:

    它认为您需要从函数 facebookCallback 中删除 stateless()

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

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

    【讨论】:

    • stateless() 链接到返回语句是禁用会话状态验证的方式。
    猜你喜欢
    • 2020-06-10
    • 2016-12-15
    • 2017-04-04
    • 2017-06-15
    • 2015-10-11
    • 2019-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多