dingo/API 的 api.auth 中间件对于不同用户表认证问题
表示很想知道在config/api.php
中配置完
'auth' => [
'jwt' => 'Dingo\Api\Auth\Provider\JWT',
]
之后给路由添加dingo/api
的api.auth
中间件,用户认证时默认采用的Guard为什么是config/auth.php
中配置的api Guard
,它们之间是从哪里联系的?
在做不同用户表认证时,api guard
的Provider是users,这样就会只对前台用户(users)做认证,是否有办法使用api.auth
中间件做用户认证时可以配置不同Guard
呢?(例如我配置一个admin_api guard
它的provider
是admin_users
,不同用户表的用户认证时进行切换Guard)
Google和百度之后,发现很多人的做法是自定义一个后台用户认证的中间件,在做后台用户认证的时候,在中间件中动态修改api guard
的provider
指向,达到不同用户表认证的目的,可是这种动态修改配置的做法不就失去了配置的意义吗?有没有更好的办法?
@Apodabird dingo 没有处理不同guard之间的切换,始终使用的是默认的 guard,等待新的 pr 吧
总结一下
auth('api')->user()
获取用户,不能使用$this->user()
否则会多查询一次用户。貌似有多用户的情况用自带的会更加方便一点