# API 用户身份验证

Equinix API 使用 OAuth 2.0 协议对您向 API 端点发出的请求进行身份验证。 要与 Equinix API 交互，您需要一个持有者访问令牌。持有者令牌决定了身份验证方案的类型，它是 OAuth 2.0 协议的一部分。

<!-- -->

信息

Equinix Metal API 不使用此处描述的身份验证流程。Metal API 密钥通过 [Metal 控制台](/zh-Hans/metal/identity-access-management/api-keys.md) 进行管理，其身份验证在 [API 参考](https://docs.equinix.com/api-catalog/metalv1/#tag/Authentication) 中有详细说明。

## 先决条件[​](#先决条件 "Direct link to 先决条件")

通过 API 与 Equinix 产品交互需要：

* Equinix Customer Portal账户。
* 产品专属的创建、修改和删除权限。请联系您所在组织的主管理员并申请访问权限。

## 生成客户端 ID 和客户端密钥[​](#生成客户端-id-和客户端密钥 "Direct link to 生成客户端 ID 和客户端密钥")

您需要客户端 ID 和客户端密钥才能获取授权 API 请求的令牌。要生成客户端 ID 和客户端密钥，请在客户门户的“开发者设置”部分注册您的应用。

注册应用：

1. 登录到[客户门户](https://portal.equinix.com)。

2. 从全局导航菜单中，选择“开发者设置”。 > *Apps* 显示应用详情。

   ![](/zh-Hans/assets/images/auth-dev-menu-a9161ccf9e632050f83ddb969f6d16f2.png)

3. API 许可协议 - 首次使用平台和 API 之前，您必须阅读并接受显示的 API 许可协议。

   ![](/zh-Hans/assets/images/auth-license-agreement-b3b3306c8dbdc8fa214d34ce7f9874ce.png)

   一旦您接受了该协议，您可以在“附加信息”部分找到它。

   ![](/zh-Hans/assets/images/auth-additional-info-86c6708fc3c7eb40798e8efd48715ce2.png)

4. 点击**创建新应用**。

   ![](/zh-Hans/assets/images/auth-create_new_app-353d89258181768204be10e122cb9c51.png)

5. 提供\_应用名称\_，选择\_应用环境类型\_（生产环境），然后单击**创建**。

   ![](/zh-Hans/assets/images/auth-create_new_app_details-c3850c198a7b8fa6bcba9a3debfaf5c1.png)

6. 点击应用图标即可查看详情。

7. 点击眼睛图标查看您的\_消费者密钥\_和\_消费者密钥\_。

   ![](/zh-Hans/assets/images/auth-app-details-pane-cd47a19c79e99ab157f7b4cd7addbf48.png)

## 请求访问令牌[​](#请求访问令牌 "Direct link to 请求访问令牌")

您需要访问令牌才能授权您的 API 请求。要请求令牌，请向 [`/oauth2/v1/token`](/zh-Hans/api-catalog/accesstokenv1#operation/GetOAuth2AccessToken) 端点发送 `POST` 请求，并在请求正文中指定您的客户端 ID 和客户端密钥。

cURL 请求示例：

```
curl -X  

POST 'https://api.equinix.com/oauth2/v1/token'  

-H 'content-type: application/json'  

-d '{  

    "grant_type": "client_credentials",  

    "client_id": "<client_id>",  

    "client_secret": "<client_secret>"  

}'
```

有关可用参数和选项的完整列表，请参阅[API 参考](/zh-Hans/api-catalog/accesstokenv1#operation/GetOAuth2AccessToken)。

示例回答：

```
{  

    "access_token": "<token>",  

    "token_timeout": "3600",  

    "user_name": "john.doe@example.com",  

    "token_type": "Bearer"  

}
```

## 刷新令牌[​](#刷新令牌 "Direct link to 刷新令牌")

您可以通过向 [`/oauth2/v1/refreshaccesstoken`](/zh-Hans/api-catalog/accesstokenv1#operation/RefreshOAuth2AccessToken) 端点发送 `POST` 请求来刷新您的访问令牌。

curl 请求示例：

```
curl -X  

POST 'https://api.equinix.com/oauth2/v1/refreshaccesstoken'  

-H 'content-type: application/json'  

-d '{  

    "client_id": "<client_id>",  

    "client_secret": "<client_secret>",  

    "refresh_token": "<token>  

}'‌‌
```

有关可用参数和选项的完整列表，请参阅[API 参考](/zh-Hans/api-catalog/accesstokenv1#operation/RefreshOAuth2AccessToken)

## 使用访问令牌[​](#使用访问令牌 "Direct link to 使用访问令牌")

要与 Equinix API 交互，请在 HTTP 请求的 Authorization 标头中发送您的访问令牌，并加上 `authorization: Bearer <token>`

cURL 请求示例 - 来自托管 API 的入站发货：

```
curl -X  

POST "https://api.equinix.com/colocations/v2/orders/shipments"  

-H "content-type: application/json"  

-H "authorization: Bearer <token>"  

-d '{  

    "type": "INBOUND",  

    "requestedDateTime": "2020-11-02T10:45:41Z",  

    "cageId": "AM1:01:000111",  

    "details": {  

    "carrier": "CUSTOMER_CARRIER",  

    "numberOfBoxes": 2  

    }  

}'‌
```
