我们使用最新版本的Laravel和Laravel Jetstream,并希望实现一种功能,允许管理员代表常规用户登录。这允许我们提供更好的支持,如果一些用户遇到问题,他们的帐户。
这一功能似乎完美地实现了预期的结果:
Auth::loginUsingId(1);不幸的是,我收到了以下错误消息
Method Illuminate\Auth\RequestGuard::loginUsingId does not exist经过一段时间,在拉威尔德布格巴的帮助下,我发现这个问题是由Laravel Sanctum引起的。它不包括上述函数,并被设置为middleware以保护app\routes\web.php文件中的路由。
在将middleware更改为
Route::middleware(['auth:sanctum', 'verified'])至
Route::middleware(['auth', 'verified'])长话短说:还有其他解决方案吗?或者更好:这是一个有效的解决方案吗?我是否可以将Sanctum 从网络路由中删除,或者这是由于某种原因而需要的呢?,我们仍然希望使用Sanctum来验证我们的移动应用程序,我们基于令牌的API。
发布于 2021-02-15 11:30:37
Sanctum提供了一种简单的机制(与Passport相比)来验证您的API和SPAs (由API提供)。
如果您没有开发SPA,则不需要使用auth:sanctum中间件,而是可以使用web auth中间件。
您仍然可以并且应该使用routes/api.php文件中的神圣中间件。
https://stackoverflow.com/questions/66205553
复制相似问题