本页面适用于 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">
属性 | 说明 | 默认 | Presence |
---|---|---|---|
async |
设置为 此设置仅用于内部优化。 |
false | 可选 |
continueOnError |
大多数政策会在发生故障时返回错误。将此属性设置为 |
false | 可选 |
已启用 | 确定是否强制执行政策。如果设置为 false ,则政策会“关闭”,并且不会强制执行(即使政策仍附加到某个流)。 |
true | 可选 |
name |
政策的内部名称。此名称在 Step 元素中引用,以便将政策附加到流。 注意:您可以在名称中使用的字符仅限于: |
不适用 | 必需 |
<AccessToken> 元素
标识要删除的访问令牌所在的变量。例如,如果访问令牌作为查询参数“access_token”附加到请求消息,请指定 request.queryparam.access_token
。您可以使用引用令牌的任何有效变量。或者,传入字面令牌字符串(罕见大小写)。
<AccessToken ref="request.queryparam.access_token"></AccessToken>
默认: | 不适用 |
状态: | 必须提供 <AccessToken> 或 <AuthorizationCode> 。 |
类型: | 字符串 |
属性
属性 | 说明 | 默认 | Presence |
---|---|---|---|
ref |
访问令牌变量。通常从流变量检索。例如 |
不适用 | 可选 |
<AuthorizationCode> 元素
标识要删除的授权代码所在的变量。例如,如果 auth 代码作为查询参数(名为“code”)附加到请求消息,请指定 request.queryparam.code
。您可以使用引用令牌的任何有效变量。或者,传入字面令牌字符串(罕见大小写)。
<AuthorizationCode ref="request.queryparam.code"></AuthorizationCode>
默认: | 不适用 |
状态: | 必须提供 <AccessToken> 或 <AuthorizationCode> 。 |
类型: | 字符串 |
属性
属性 | 说明 | 默认 | Presence |
---|---|---|---|
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 提供了政策架构作为参考。