本页面适用于 Apigee 和 Apigee Hybrid。
  
    查看 Apigee Edge 文档。
  
  
       
 
  
内容
删除指定的 OAuth V2 授权代码或访问令牌。
此政策是一项可扩展政策,使用此政策可能会影响费用或使用情况,具体取决于您的 Apigee 许可。如需了解政策类型和使用情况影响,请参阅政策类型。
示例
删除访问令牌
以下是用于删除 OAuth 2.0 访问令牌的示例政策。以下示例通过查找名为 access_token 的标头,在请求消息中删除访问令牌。
<DeleteOAuthV2Info name="DeleteAccessToken">
     <AccessToken ref="request.header.access_token"></AccessToken>
</DeleteOAuthV2Info>删除 Auth 代码
下面是一个示例政策,用于删除 OAuth 2.0 授权代码。以下示例通过查找名为 code 的查询参数来查找要在请求消息中删除的 auth 代码。
<DeleteOAuthV2Info name="DeleteAuthCode">
     <AuthorizationCode ref="request.queryparam.code"></AuthorizationCode>
</DeleteOAuthV2Info>元素参考
元素参考描述了 DeleteOAuthV2Info 政策的元素和属性。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <DeleteOAuthV2Info async="false" continueOnError="false" enabled="true" name="DeleteOAuthV2Info-1"> <DisplayName>Delete OAuth v2.0 Info 1</DisplayName> <AccessToken ref={some-variable}></AccessToken> <!--<AuthorizationCode ref={some-variable}></AuthorizationCode>--> <Attributes/> </DeleteOAuthV2Info
<DeleteOAuthV2Info> 属性
<DeleteOAuthV2Info async="false" continueOnError="false" enabled="true" name="Delete-OAuth-v20-Info-1">
| 属性 | 说明 | 默认值 | 状态 | 
|---|---|---|---|
| async | 设置为  此设置仅用于内部优化。 | false | 可选 | 
| continueOnError | 大多数政策会在发生故障时返回错误。将此属性设置为  | false | 可选 | 
| 已启用 | 确定是否强制执行政策。如果设置为 false,则政策会“关闭”,并且不会强制执行(即使政策仍附加到某个流)。 | true | 可选 | 
| name | 政策的内部名称。此名称在 Step 元素中引用,以便将政策附加到流。 注意:您可以在名称中使用的字符仅限于: | 不适用 | 需要 | 
<AccessToken> 元素
标识要删除的访问令牌所在的变量。例如,如果访问令牌作为查询参数“access_token”附加到请求消息,请指定 request.queryparam.access_token。您可以使用引用令牌的任何有效变量。或者,传入字面令牌字符串(罕见大小写)。
<AccessToken ref="request.queryparam.access_token"></AccessToken>
| 默认: | 不适用 | 
| 状态: | 必须提供 <AccessToken>或<AuthorizationCode>。 | 
| 类型: | 字符串 | 
属性
| 属性 | 说明 | 默认值 | 状态 | 
|---|---|---|---|
| ref | 访问令牌变量。通常从流变量检索。例如  | 不适用 | 可选 | 
<AuthorizationCode> 元素
标识要删除的授权代码所在的变量。例如,如果 auth 代码作为查询参数(名为“code”)附加到请求消息,请指定 request.queryparam.code。您可以使用引用令牌的任何有效变量。或者,传入字面令牌字符串(罕见大小写)。
<AuthorizationCode ref="request.queryparam.code"></AuthorizationCode>
| 默认: | 不适用 | 
| 状态: | 必须提供 <AccessToken>或<AuthorizationCode>。 | 
| 类型: | 字符串 | 
属性
| 属性 | 说明 | 默认值 | 状态 | 
|---|---|---|---|
| ref | 访问令牌变量。通常从流变量检索。例如  | 不适用 | 可选 | 
<DisplayName> 元素
在 Apigee 界面代理编辑器中,用自然语言名称给政策加标签。如果省略,则使用政策名称属性。
<DisplayName>DeleteOAuthV2Info 1</DisplayName>
| 默认: | 政策的 name属性的值。 | 
| 状态: | 可选 | 
| 类型: | 字符串 | 
错误参考信息
本部分介绍当此政策触发错误时返回的故障代码和错误消息,以及由 Apigee 设置的故障变量。在开发故障规则以处理故障时,请务必了解此信息。如需了解详情,请参阅您需要了解的有关政策错误的信息和处理故障。
运行时错误
政策执行时可能会发生这些错误。
| 故障代码 | HTTP 状态 | 原因 | 
|---|---|---|
| steps.oauth.v2.invalid_access_token | 401 | 发送到该政策的访问令牌无效。 | 
| steps.oauth.v2.invalid_request-authorization_code_invalid | 401 | 发送到该政策的授权代码无效。 | 
| steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound | 401 | 如需了解有关如何排查此错误的信息,请参阅 Oauth2.0 访问令牌验证抛出的:“由于未找到 apiproduct 匹配项,API 调用无效”的错误。 | 
部署错误
如需了解部署错误,请参阅界面中报告的消息。
故障变量
当此政策在运行时触发错误时,将设置这些变量。
| 变量 | 地点 | 示例 | 
|---|---|---|
| fault.name="fault_name" | fault_name 是故障名称,如上面的运行时错误表中所列。故障名称是故障代码的最后一部分。 | fault.name = "invalid_access_token" | 
| oauthV2.policy_name.failed | policy_name 是抛出故障的政策的用户指定名称。 | oauthV2.DeleteTokenInfo.failed = true | 
| oauthV2.policy_name.fault.name | policy_name 是抛出故障的政策的用户指定名称。 | oauthV2.DeleteTokenInfo.fault.name = invalid_access_token | 
| oauthv2.policy_name.fault.cause | policy_name 是抛出故障的政策的用户指定名称。 | oauthV2.DeleteTokenInfo.cause = Invalid Access Token | 
错误响应示例
{
  "fault": {
    "faultstring": "Invalid Access Token",
    "detail": {
      "errorcode": "keymanagement.service.invalid_access_token"
    }
  }
}故障规则示例
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="DeleteOAuthV2Info_Faults">
    <Step>
        <Name>AM-InvalidTokenResponse</Name>
    </Step>
    <Condition>(fault.name = "invalid_access_token")</Condition>
</FaultRule>架构
每种政策类型均由 XML 架构 (.xsd) 定义。GitHub 提供了政策架构作为参考。