我已经为我的用户设置了一个 API 令牌,他们可以在访问 API 路由以返回其他数据时选择提供该令牌。
这是我的auth.php配置:
'defaults' => [
'guard' => 'web',
],
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'eloquent',
],
'api' => [
'driver' => 'token',
'provider' => 'eloquent',
],
],
我的代码中有多个(共享)位置,它们使用类似的检查$request->user()
不提供警卫。问题是这总是使用默认的防护。
但是,如果我将 API 路由之一设置为使用中间件auth:api
然后它按照我的预期默认使用 api 保护。但我无法真正设置它,因为正如我所提到的,身份验证是可选的,并且使用身份验证中间件使其成为强制性的。
我想知道是否有一种方法可以设置所有 API 路由,使其默认防护是 API 防护。
对我来说,最简单的方法是向 Api\Controller(扩展所有类的那个)添加以下行:
public function __construct()
{
// We set the guard api as default driver
auth()->setDefaultDriver('api');
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)