

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 测试授权方
<a name="custom-auth-testing"></a>

 您可以使用 [TestInvokeAuthorizer](https://docs.amazonaws.cn/iot/latest/apireference/API_TestInvokeAuthorizer.html)API 来测试授权方的调用和返回值。 此 API 使您能够在授权方中指定协议元数据并测试签名验证。

以下选项卡显示了如何使用 Amazon CLI 来测试您的授权者。

------
#### [ Unix-like ]

```
aws iot test-invoke-authorizer --authorizer-name {{NAME_OF_AUTHORIZER}} \
--token {{TOKEN_VALUE}} --token-signature {{TOKEN_SIGNATURE}}
```

------
#### [ Windows CMD ]

```
aws iot test-invoke-authorizer --authorizer-name {{NAME_OF_AUTHORIZER}} ^
--token {{TOKEN_VALUE}} --token-signature {{TOKEN_SIGNATURE}}
```

------
#### [ Windows PowerShell ]

```
aws iot test-invoke-authorizer --authorizer-name {{NAME_OF_AUTHORIZER}} `
--token {{TOKEN_VALUE}} --token-signature {{TOKEN_SIGNATURE}}
```

------

`token-signature` 参数的值是签名令牌。要了解如何获取此值，请参阅 [签名令牌](custom-auth.md#custom-auth-token-signature)。

如果您的授权方使用了用户名和密码，您可以使用 `--mqtt-context` 参数传递此信息。以下选项卡显示如何使用 `TestInvokeAuthorizer` API 将包含用户名、密码和客户端名称的 JSON 对象发送到您的自定义授权方。

------
#### [ Unix-like ]

```
aws iot test-invoke-authorizer --authorizer-name {{NAME_OF_AUTHORIZER}}  \
--mqtt-context '{"username": "{{USER_NAME}}", "password": "dGVzdA==", "clientId":"{{CLIENT_NAME}}"}'
```

------
#### [ Windows CMD ]

```
aws iot test-invoke-authorizer --authorizer-name {{NAME_OF_AUTHORIZER}}  ^
--mqtt-context '{"username": "{{USER_NAME}}", "password": "dGVzdA==", "clientId":"{{CLIENT_NAME}}"}'
```

------
#### [ Windows PowerShell ]

```
aws iot test-invoke-authorizer --authorizer-name {{NAME_OF_AUTHORIZER}}  `
--mqtt-context '{"username": "{{USER_NAME}}", "password": "dGVzdA==", "clientId":"{{CLIENT_NAME}}"}'
```

------

密码必须采用 base64 编码。以下示例说明如何在类 Unix 的环境中对密码进行编码。

```
echo -n {{PASSWORD}} | base64
```