调用另一个API (oauth2)的API应该如何对自己进行身份验证(授予访问权限)


How should an API that calls another API (oauth2) authenticate (grant access to) itself?

我即将创建一个API。API本身将调用另一个oauth2 API。API应该如何向其他oauth2 API进行身份验证?

网站A调用API A时,API A调用API B,当它只是来自网站A的cURL调用时,API A将如何认证(即单击授予访问)?

解决方案是将授权类型更改为client_credentials

$accessToken = $this->getProvider()->getAccessToken('client_credentials', [
            'scope' => 'read(all),write(all)'
        ]);

经过一番研究,我发现可以使用另一种授权类型client_credentials,而不是authorization_code。使用client_credentials,我不需要对自己进行身份验证(即单击授予访问权限),而只需调用API,直接返回访问令牌。

在我的情况下,我已经得到了我的API密钥,也有一个选项,我必须改变类型从"Web"到"服务"。这允许我获得授予类型为"client_credentials"的访问令牌。在此之前,当我尝试使用授权类型client_credentials时,我会在响应中得到错误消息。