DeleteOAuthV2Info 政策

本页面适用于 ApigeeApigee 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">
属性 说明 默认 Presence
async

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

此设置仅用于内部优化。

false 可选
continueOnError

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

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

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

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

不适用 必需

<AccessToken> 元素

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

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

属性

属性 说明 默认 Presence
ref

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

不适用 可选

<AuthorizationCode> 元素

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

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

属性

属性 说明 默认 Presence
ref

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

不适用 可选

<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 提供了政策架构作为参考。

相关主题