DeleteOAuthV2Info 政策

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

内容

删除指定的 OAuth V2 授权代码或访问令牌。

示例

删除访问令牌

以下是用于删除 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

设置为 true 以指定政策应在与请求/响应流运行的池不同的线程池中运行。默认值为 false

此设置仅用于内部优化。

false 可选
continueOnError

大多数政策会在发生故障时返回错误。将此属性设置为 true 后,流执行会失败。

false 可选
enabled 确定是否强制执行政策。如果设置为 false,则政策会“关闭”,并且不会强制执行(即使政策仍附加到某个流)。 true 可选
name

政策的内部名称。此名称在 Step 元素中引用,以便将政策附加到流。

注意:您可以在名称中使用的字符仅限于:A-Z0-9._\-$ %。管理界面会强制实施其他限制,例如 系统会自动移除非字母数字字符。

不适用 必需

<AccessToken> 元素

标识要删除的访问令牌所在的变量。例如,如果访问令牌作为查询参数“access_token”附加到请求消息,请指定 request.queryparam.access_token。您可以使用引用令牌的任何有效变量。或者,传入字面令牌字符串(罕见大小写)。

 <AccessToken ref="request.queryparam.access_token"></AccessToken>
默认: 不适用
状态: 必须提供 <AccessToken><AuthorizationCode>
类型: 字符串

特性

属性 说明 默认 状态
ref

访问令牌变量。通常从流变量检索。例如 request.header.tokenrequest.queryparam.token

可选

<AuthorizationCode> 元素

标识要删除的授权代码所在的变量。例如,如果 auth 代码作为查询参数(名为“code”)附加到请求消息,请指定 request.queryparam.code。您可以使用引用令牌的任何有效变量。或者,传入字面令牌字符串(罕见大小写)。

 <AuthorizationCode ref="request.queryparam.code"></AuthorizationCode>
默认: 不适用
状态: 必须提供 <AccessToken><AuthorizationCode>
类型: 字符串

特性

属性 说明 默认 状态
ref

访问令牌变量。通常从流变量检索。例如 request.header.coderequest.queryparam.code

可选

<DisplayName> 元素

用于在管理界面代理编辑器中标记政策的自然语言名称。如果省略,则使用政策名称属性。

<DisplayName>DeleteOAuthV2Info 1</DisplayName>
默认: 政策的 name 属性的值。
状态: 可选
类型: 字符串

错误参考信息

本部分介绍此政策触发错误时返回的错误代码和错误消息,以及 Edge 设置的故障变量。 在开发故障规则以处理故障时,请务必了解此信息。如需了解详情,请参阅您需要了解的有关政策错误的信息处理故障

运行时错误

政策执行时可能会发生这些错误。

故障代码 HTTP 状态 原因
steps.oauth.v2.invalid_access_token 401 发送到该政策的访问令牌无效。
steps.oauth.v2.invalid_request-authorization_code_invalid 401 发送到该政策的授权代码无效。
steps.oauth.v2.InvalidAPICallAsNoApiProductMatchFound 401 如需了解如何排查此错误,请参阅此 Apigee 社区帖子

部署错误

如需了解部署错误,请参阅界面中报告的消息。

故障变量

当此政策在运行时触发错误时,将设置这些变量。

变量 地点 示例
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 提供了政策架构作为参考。

相关主题