Laravel修改passport认证字段

首先如果用passport的情况下,一定是先请求oauth,发送username和password。然后进行用户认证。开箱自带的是验证email和password。
首先按思路应该先看看请求的是什么方法。如下


image.png

这个方法全局搜索一下,在Laravel\Passport\Http\Controllers中。
找到这个控制器,中的方法。如下


Laravel修改passport认证字段_第1张图片
image.png

紧接着是将$request放到server中处理,继续找下去


Laravel修改passport认证字段_第2张图片
image.png

接下来的处理在respondToAccessTokenRequest()这个方法中(相应访问令牌请求)


Laravel修改passport认证字段_第3张图片
image.png

全局查找,因为咱们使用的是password模式,所以应该在passwordGrant.php中。


Laravel修改passport认证字段_第4张图片
image.png

然后查看这个方法,咱们想修改认证字段,所以这个操作一定在validateUser方法中。(验证用户)


Laravel修改passport认证字段_第5张图片
image.png

方法中先获取username和password,然后就是调用userRepository中的方法获得user,点击去看看。


Laravel修改passport认证字段_第6张图片
image.png

第一个就是


Laravel修改passport认证字段_第7张图片
image.png

这个方法就是通过用户凭证获得用户信息。

其中


Laravel修改passport认证字段_第8张图片
image.png

这个方法就是判断guard api下的model中有没有findForPassport这个方法,如果有,则通过model中的方法返回用户。否则用默认的email返回。

要修改passport的认证字段,只需要在model中添加一个findForPassport方法即可。

你可能感兴趣的:(Laravel修改passport认证字段)