如何解决Laravel Jetstream - 是否需要 Sanctum 来保护网络路由?
我们将最新版本的 ([Sum of all grades from one group] / [number of grades of one group])
与 Laravel
一起使用,并希望实现一项功能,以允许我们的管理员代表普通用户登录。这使我们能够在某些用户遇到帐户问题时提供更好的支持。
This function 似乎完美地达到了预期的结果:
Laravel Jetstream
很遗憾,我收到以下错误消息
Auth::loginUsingId(1);
一段时间后,多亏了 Laravel Debugbar 的帮助,我才发现问题是由 Method Illuminate\Auth\RequestGuard::loginUsingId does not exist
引起的。不包含上述功能,设置为Laravel Sanctum
以保护middleware
文件中的路由。
更改 app\routes\web.php
from
middleware
到
Route::middleware(['auth:sanctum','verified'])
长话短说:
是否有其他解决方案可以做到这一点?或者更好:这甚至是一个有效的解决方案吗?我可以直接从网络路由中删除 Route::middleware(['auth','verified'])
还是出于某种原因需要这样做?我们仍希望使用 Sanctum
来验证我们的移动应用程序基于令牌的 API。
解决方法
Sanctum 提供了一种简单的机制(与 Passport 相比)来验证您的 API 和 SPA(由 API 提供服务)。
如果您不是在开发 SPA,则不需要使用 auth:sanctum
中间件,而是可以使用网络 auth
中间件。
您仍然可以并且应该使用 routes/api.php
文件中的 sanctum 中间件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。