问题描述
我有一个带有 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 (将#修改为@)