laravel api 认证使用了 passport 的密码验证方式, 在做手机短信验证码登录时, 由于获取不到 明文密码,无法获取 token
用 laravel 个人访问令牌获取 token 时, 获取到的 token 有效期为一年, 且无法获取 refresh_token
查看源码, 在laravel\passport\src\Bridge\UserRepository.php 的 getUserEntityByUserCredentials() 函数中会看到这段代码:
所以采用 在数据库里存的hash加密后的密码来验证, 即在 user model 中重写密码验证方法: validateForPassportPasswordGrant

在controller中, 在需要登录的地方使用 Guzzle 发送请求 即可获取 token

获取token数据

