使用 restAPI 的 Laravel oauth 不起作用,但在邮递员中工作



我有 2 个应用程序,它们都在使用 Laravel。 安全。 这些应用程序通过 restAPI 进行通信 当我通过邮递员请求 oauth 令牌时,它工作正常,但是当我使用第一个应用程序的 (Guzzle) http post 尝试时,它无法验证 用户。他们都应该使用不同的数据库,但是当我切换时 对于 MySQL,错误消息指出它无法连接到第一个 应用程序的数据库。这里出了什么问题?

protected function getAccessTokenMerchant()
{
$client = new Client();
$response = $client->POST("http://localhost/xxx/public/" . 'oauth/token', [
'headers' => [
'Accept' => 'application/json',
'Content' => 'application/json'
],
'json' => [
'client_id' => "2",
'client_secret' => "LlJ90SqW4IPSUfQGiLQVUzKtCr1FKMirS6bBxcf1",
'grant_type' => 'client_credentials'
]
]
);
return $response->getBody();
}

此代码的响应是 客户端错误:POST http://localhost/xxx/oauth/token导致401 Unauthorized响应。当我使用邮递员向 http://localhost/xxx/oauth/token 发出请求时,我收到了令牌

{
"token_type": "Bearer",
"expires_in": 31536000,
"access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjAyYzFmZGQwNmE4MTM0MGM5ZDQwNjI3OWI3ZGJjN2E1NzdhMmJiMjllNjZkOTIzODE0Mjg2Y2IxNmVlM2ZiYjcwZDFlZTgxNmQwNDZlOWE4In0.eyJhdWQiOiIyIiwianRpIjoiMDJjMWZkZDA2YTgxMzQwYzlkNDA2Mjc5YjdkYmM3YTU3N2EyYmIyOWU2NmQ5MjM4MTQyODZjYjE2ZWUzZmJiNzBkMWVlODE2ZDA0NmU5YTgiLCJpYXQiOjE1NzE4NDQ4NDcsIm5iZiI6MTU3MTg0NDg0NywiZXhwIjoxNjAzMzgwODQ3LCJzdWIiOiIiLCJzY29wZXMiOltdfQ.WXIOIOVcacv4Cf-V8RlrlWpuIrDu0_cnoykxSQKtwAx1JxrK8dWsZqrxQbYsVU8Nt03apVpbtOEDhn32yIF7xhRuJHuw_p1x-waOJCQ2CDzcmkiumhDcc117CYrn3jrBaEDBKEpZSuI5ZW8-VqSWXmfpc18xjxESpAWej__wT78mKYtelZg00I2M5khJTAD2XaBsjoThdK0QuID6jtlMBaoZJEHzoEj-UKpuizOwvFXwbl6Plz3L_uuQqmKz64y8hfMhgZ8Zc70rkI_iLek7D1yEXn5EsZ5BH0qKgYsIYxyZMdojL4bhT8yjgB4KujZi8tHfM6iHthAgYYJ2WlIBQJ9lCpnGuP4xWyNGmN3HQZ4K5eM7pHkZLu3eEVrl-7JixC0HgDWos25m8_HIUnXaUs-dNDDsDMO0o57JB38ao-frUgfrAU6DgjYTEslmtS0SYpE6JoPTbBn7XYADy4VCP6J67dSm-J_Qbm8GFuyX_o57v43jH4tPFxq-ccnTlfzT-E6ApFsMhYAGli713TQUct2Y3VTQFVRMuDniMMKdsZT8XN4CLGbdN6tic9jQ5W_i-XfWL9vN_RSiXHROAF-KV8nxVj0n4GgycJ9DtV0-C3Qcpyz7Zbh_WrVPW5qsr5j5rrtWXsQ7VZOBCWLAyh4YXe_HSeOXqV-k202kcURZ0UQ"}

当我关闭 mySql 服务器时,getAccessTokenMerchant() 函数返回以下错误: 未知数据库"first_application_db"(SQL:从client_credentials中选择 *,其中code= 电子钱包限制 1) 这是不正确的。它应该与second_application_db而不是first_application_db进行检查。知道发生了什么吗?

我发现了问题所在。 我的第二个应用程序以某种方式使用客户端的数据库连接(第一个应用程序的数据库) 这就是它无法对OAuth令牌进行身份验证的原因。 我通过运行php artisan config:cache来解决,现在它可以工作

最新更新