Mr *_*bri 1 php api rest rest-client yii2
我使用Yii2 文档创建了一个 REST API 。它似乎工作正常,因为我可以像这样使用 curl:
curl -i "https://example.com/api/v3/user" \
-H "Accept:application/json" \
-H "Authorization: Bearer xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Run Code Online (Sandbox Code Playgroud)
我现在希望能够从另一个 Yii2 站点使用这些数据。我正在尝试使用 Yii2 REST API 客户端。因为它是基本的副本,我不会张贴整个代码的Facebook客户端在yiisoft / yii2-authclient。
有没有人知道帮助我修改它以使用我的 API 的指南?在第一种情况下,我用什么把挣扎$authUrl和$tokenUrl。
我不确定您是否需要扩展 outh2 类,因为我相信您没有在第一个 Yii2 webapp 中完成身份验证逻辑,例如使用第一个 webapp url 进行身份验证然后重定向到第二个 webapp 以从 url 中提取令牌。
创建一个具有这些方法的组件可能会更简单
class YourRestClient {
const BASE_URL = 'https://example.com/api/v3';
private $_token = null;
public function authenticate($username,$password){
$client = new Client();
$response = $client->createRequest()
->setMethod('POST')
->setUrl(BASE_URL.'/user/login')
->setData(['username' => $username, 'password' => $password])
->send();
if ($response->isOk) {
$this->_token = $response->data['token'];
}
}
public function logout(){
//your logut logic
}
public function refreshToken(){
//your refresh logic
}
public function userList(){
$client = new Client();
$response = $client->createRequest()
->setMethod('GET')
->setUrl(BASE_URL.'/user/users')
->addHeaders([
'content-type' => 'application/json',
'Authorization' => 'Bearer '.$_token,
])
->send();
if ($response->isOk) {
return $response->getData();
}
}
}
Run Code Online (Sandbox Code Playgroud)
欲了解更多信息httpclient
| 归档时间: |
|
| 查看次数: |
3475 次 |
| 最近记录: |