跳至主要內容

處理組織權杖 (Organization token) 的權限範圍 (Scope) 更新

完成上述設定後,你可以透過電子郵件發送邀請,受邀者將以指定角色加入組織 (Organization)。

擁有不同組織角色的使用者,其組織權杖 (Organization token) 中會有不同的權限範圍 (Scopes / Permissions)。你的前端應用程式與後端服務都應檢查這些權限範圍,以決定可見功能與允許操作。

如前所述,組織範本 (Organization template) 是保護組織權限 (Organization permissions)組織層級 API的重要存取控制層。請務必檢閱授權 (Authorization) 章節,並選擇最適合你產品的授權模型。

本章重點說明 權限管理 以及在 Logto 組織權杖 (Organization token) 中處理權限範圍 (Scope) 變更與權限的最佳實踐。

處理組織權杖 (Organization token) 權限範圍 (Scope) 更新

管理組織權杖 (Organization token) 權限範圍 (Scope) 更新包含:

撤銷現有權限範圍 (Revoke existing scopes)

例如,將管理員降級為一般成員時,應移除該使用者的權限範圍 (Scopes)。此時,請清除快取的組織權杖 (Organization token),並使用重新整理權杖 (Refresh token) 取得新權杖。新發行的組織權杖會立即反映權限範圍的減少。

賦予新權限範圍 (Grant new scopes)

可分為兩種情境:

賦予已在驗證系統中定義的新權限範圍

與撤銷權限範圍類似,若新賦予的權限範圍已在驗證伺服器註冊,發行新組織權杖即可立即反映新權限範圍。

賦予剛新增至驗證系統的新權限範圍

此時,需觸發重新登入或重新授權(consent)流程,以更新使用者的組織權杖。例如,呼叫 Logto SDK 的 signIn 方法。

即時檢查權限並更新組織權杖 (Organization token)

Logto 提供 Management API 以查詢組織中使用者的即時權限:

將使用者組織權杖中的權限範圍與即時權限比對,以判斷使用者是否被升級或降級。

  • 若被降級,請清除快取的組織權杖,SDK 會自動發行包含更新權限範圍的新權杖。

    const { clearAccessToken } = useLogto();

    ...
    // 若即時查詢的權限範圍少於組織權杖中的權限範圍
    await clearAccessToken();

    此操作不需重新登入或重新授權。Logto SDK 會自動發行新的組織權杖。

  • 若驗證系統中新增了新的權限範圍,則需觸發重新登入或重新授權流程以更新使用者的組織權杖。例如,使用 React SDK:

    const { clearAllTokens, signIn } = useLogto();

    ...
    // 若即時查詢的權限範圍有新分配的權限範圍
    await clearAllTokens();
    signIn({
    redirectUri: '<your-sign-in-redirect-uri>',
    prompt: 'consent',
    });

    上述程式碼會導向使用者授權頁面 (Consent screen),並於授權後自動導回應用程式,且組織權杖中的權限範圍已更新。