【发布时间】:2021-05-18 04:38:48
【问题描述】:
我们正在使用最新版本的Laravel 和Laravel Jetstream,并希望实现一项功能,允许我们的管理员代表普通用户登录。这使我们能够在某些用户遇到帐户问题时提供更好的支持。
This function 似乎完美地达到了预期的结果:
Auth::loginUsingId(1);
很遗憾,我收到以下错误消息
Method Illuminate\Auth\RequestGuard::loginUsingId does not exist
一段时间后,感谢Laravel Debugbar 的帮助,我发现问题是由Laravel Sanctum 引起的。不包含上述功能,设置为middleware以保护app\routes\web.php文件中的路由。
从middleware 更改后似乎可以工作
Route::middleware(['auth:sanctum', 'verified'])
到
Route::middleware(['auth', 'verified'])
长话短说:
还有其他解决方案吗?或者更好:这甚至是一个有效的解决方案吗?我可以从网络路由中删除 Sanctum 还是出于某种原因需要这样做?我们仍希望使用 Sanctum 来验证我们的移动应用程序和基于令牌的 API。
【问题讨论】:
标签: php laravel authentication laravel-sanctum jetstream