DeleteOAuthV2Info 政策

本頁適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

政策圖示

結果

刪除指定的 OAuth V2 授權碼或存取權杖。

這項政策是可擴充的政策,視您的 Apigee 授權而定,使用這項政策可能會產生費用或使用量影響。如要瞭解政策類型和使用相關性,請參閱「政策類型」。

範例

刪除存取權杖

以下是用來刪除 OAuth 2.0 存取權憑證的政策範例。以下範例會尋找名為 access_token 的標頭,找出要刪除的存取權權杖。

<DeleteOAuthV2Info name="DeleteAccessToken">
     <AccessToken ref="request.header.access_token"></AccessToken>
</DeleteOAuthV2Info>

刪除驗證碼

以下是用來刪除 OAuth 2.0 授權碼的政策範例。以下範例會尋找名為 code 的查詢參數,找出要刪除的驗證碼。

<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">
屬性 說明 預設 存在必要性
非同步

將其設為 true,即可指定政策應在執行要求/回應流量的執行緒集區中執行,而非在服務該執行緒集區。預設值為 false

這項設定僅用於內部最佳化。

false 選用
continueOnError

大多數政策在發生失敗時,都會傳回錯誤。將此屬性設為 true 後,即使發生錯誤,流程執行作業也會繼續進行。

false 選用
已啟用 判斷是否要強制執行政策。如果設為 false,政策就會「關閉」,不會強制執行 (即使政策仍附加至流程)。 選用
名稱

政策的內部名稱。這個名稱會在步驟元素中參照,用於將政策附加至流程。

注意:您可以在名稱中使用的字元僅限:A-Z0-9._\-$ %。Apigee UI 會強制執行其他限制,例如自動移除非英數字元的字元。

不適用 必填

<AccessToken> 元素

找出要刪除的存取權杖所在的變數。舉例來說,如果存取權杖是以名為「access_token」的查詢參數形式附加至要求訊息,請指定 request.queryparam.access_token。您可以使用任何參照符號的有效變數。或者,您也可以傳入常值符記字串 (極少見)。

 <AccessToken ref="request.queryparam.access_token"></AccessToken>
預設值: 不適用
外觀狀態: 您必須使用 <AccessToken><AuthorizationCode> 其中之一。
類型: 字串

屬性

屬性 說明 預設 存在必要性
ref

存取權杖變數。通常是從資料流變數擷取。例如 request.header.tokenrequest.queryparam.token

不適用 選用

<AuthorizationCode> 元素

找出要刪除的授權碼所在的變數。舉例來說,如果驗證碼是以名為「code」的查詢參數形式附加至要求訊息,請指定 request.queryparam.code。您可以使用任何參照符號的有效變數。或者,您也可以傳入常值符記字串 (極少見)。

 <AuthorizationCode ref="request.queryparam.code"></AuthorizationCode>
預設值: 不適用
外觀狀態: 您必須使用 <AccessToken><AuthorizationCode> 其中之一。
類型: 字串

屬性

屬性 說明 預設 存在必要性
ref

存取權杖變數。通常是從資料流變數擷取。例如 request.header.coderequest.queryparam.code

不適用 選用

<DisplayName> 元素

在 Apigee UI 代理程式編輯器中標示政策的自然語言名稱。如果省略,系統會使用政策名稱屬性。

<DisplayName>DeleteOAuthV2Info 1</DisplayName>
預設值: 政策的 name 屬性值。
外觀狀態: 選用
類型: 字串

錯誤參考資料

本節說明這項政策觸發錯誤時,Apigee 傳回的錯誤代碼和錯誤訊息,以及 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 呼叫無效」錯誤」。

部署錯誤

請參閱 UI 中回報的訊息,瞭解部署錯誤。

錯誤變數

當這項政策在執行階段觸發錯誤時,系統會設定這些變數。

變數 地點 範例
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 查看政策架構

相關主題