Laravel Auth::guard()->user() 为 Unity webGL

问题描述

我有一个带有 Laravel 7.x 后端和 Unity 前端的项目。 我的问题是从 Unity webGL 发出 API 请求时无法获取当前用户。 在将 Unity 构建为移动应用程序和 Postman 时,所有 API 都能完美运行,但无法运行来自 webGL 的完全相同的 API 请求。

我在所有路线上都使用了 auth:sanctum 中间件。 我可以登录用户并使用自定义守卫,但是在登录后尝试从守卫检索用户时,它返回 null。

我已经看过这里的大部分建议以及其他一些网站,但没有任何效果

这些是我在 api.PHP 中的路由

    Route::post('/login','Auth\LearnerAuthController@login');

    Route::middleware('auth:sanctum')->group(function () {
        Route::get('score','LearnerController@getscore');
        Route::post('score','LearnerController@setscore');
        Route::get('gamescore','LearnerController@getGamescore');
        Route::post('gamescore','LearnerController@setGamescore');
        Route::get('sticker','LearnerController@getSticker');
        Route::post('sticker','LearnerController@setSticker');
        Route::get('sticker/available','LearnerController@getAvailableSticker');
        Route::get('logout','Auth\LearnerAuthController@logout');
    });
});

这些是我的中间件组

protected $middlewareGroups = [
        'web' => [
            \App\Http\Middleware\EncryptCookies::class,\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,\Illuminate\Session\Middleware\StartSession::class,// \Illuminate\Session\Middleware\AuthenticateSession::class,\Illuminate\View\Middleware\ShareErrorsFromSession::class,\App\Http\Middleware\VerifyCsrftoken::class,\Illuminate\Routing\Middleware\SubstituteBindings::class,],'api' => [
            CustomStatefulRequest::class,\App\Http\Middleware\EncryptCookies::class,'throttle:60,1',];

这是我的守卫

'guards' => [
        'web' => [
            'driver' => 'session','provider' => 'users','learner' => [
            'driver' => 'session','provider' => 'learners','teacher' => [
            'driver' => 'session','api' => [
            'driver' => 'sanctum','hash' => false,

我的登录方式使用 Auth::guard('learner')->login($learner);

检索我使用的当前用户 $learner = Auth::guard('learner')->user();

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)