Laravel Jetstream - Sanctum是否需要保护网络路由?



我们正在使用最新版本的LaravelLaravel Jetstream,并希望实现一个功能,允许我们的管理员代表普通用户登录。这使我们能够在某些用户的帐户遇到问题时提供更好的支持。

这个函数看起来很完美,可以达到预期的结果:

Auth::loginUsingId(1);

不幸的是,我收到以下错误信息

Method IlluminateAuthRequestGuard::loginUsingId does not exist

经过一段时间,感谢Laravel Debugbar的帮助,我发现问题是由Laravel Sanctum引起的。不包含上述功能,设置为middleware保护approutesweb.php文件中的路由。

更改middleware后似乎可以工作
Route::middleware(['auth:sanctum', 'verified'])

Route::middleware(['auth', 'verified'])

长话短说:是否有其他解决方案来做到这一点?或者更好:这是一个有效的解决方案吗?我可以从网络路由中删除Sanctum吗?还是出于某种原因需要这样做?我们仍然希望使用Sanctum来验证我们的移动应用程序,我们基于令牌的API。

Sanctum为API和spa(由API提供)的身份验证提供了一种简单的机制(与Passport相比)。

如果你不开发SPA,你不需要使用auth:sanctum中间件,而是可以使用webauth中间件。

您仍然可以并且应该在您的routes/api.php文件中使用sanctum中间件。

相关内容

  • 没有找到相关文章

最新更新