首先如果用passport的情况下,一定是先请求oauth,发送username和password。然后进行用户认证。开箱自带的是验证email和password。
首先按思路应该先看看请求的是什么方法。如下
这个方法全局搜索一下,在Laravel\Passport\Http\Controllers中。
找到这个控制器,中的方法。如下
紧接着是将$request放到server中处理,继续找下去
接下来的处理在respondToAccessTokenRequest()这个方法中(相应访问令牌请求)
全局查找,因为咱们使用的是password模式,所以应该在passwordGrant.php中。
然后查看这个方法,咱们想修改认证字段,所以这个操作一定在validateUser方法中。(验证用户)
方法中先获取username和password,然后就是调用userRepository中的方法获得user,点击去看看。
第一个就是
这个方法就是通过用户凭证获得用户信息。
其中
这个方法就是判断guard api下的model中有没有findForPassport这个方法,如果有,则通过model中的方法返回用户。否则用默认的email返回。
要修改passport的认证字段,只需要在model中添加一个findForPassport方法即可。