跳至主要內容

透過 Account API 管理帳戶設定

什麼是 Logto Account API​

Logto Account API 是一套完整的 API,讓終端使用者可直接透過 API 存取帳戶,而無需經過 Management API。重點如下:

  • 直接存取:Account API 讓終端使用者可直接存取並管理自己的帳戶資料,無需透過 Management API 中繼。
  • 使用者資料與身分管理:使用者可完整管理個人資料與安全設定,包括更新電子郵件、手機、密碼等身分資訊,以及管理社交連結。MFA 與單一登入 (SSO) 支援即將推出。
  • 全域存取控制:管理員可對存取設定進行全域控管,並自訂每個欄位。
  • 無縫授權 (Authorization):授權 (Authorization) 更簡單!只需使用 client.getAccessToken() 取得 Logto 的不透明存取權杖 (Opaque token),並以 Bearer <access_token> 附加於 Authorization 標頭即可。

透過 Logto Account API,你可以打造如個人資料頁等自訂帳戶管理系統,並與 Logto 完整整合。

常見應用場景如下:

  • 取得使用者資料
  • 更新使用者資料
  • 更新使用者密碼
  • 更新使用者身分(包含電子郵件、手機、社交連結)
  • 管理多重要素驗證 (MFA) 因子(驗證方式)
  • 管理使用者工作階段(Sessions)
  • 管理使用者授權應用程式(Grants)

欲瞭解更多可用 API,請參閱 Logto Account API 參考文件 與 Logto Verification API 參考文件。

備註:

SSO 帳戶檢視與帳戶刪除功能目前僅能透過 Logto Management API 使用。請參閱 透過 Management API 管理帳戶設定 以取得實作細節。

如何啟用 Account API​

前往 Console > 登入與帳戶 > 帳戶中心。

Account API 預設為關閉,因此其存取控制設定為鎖定。切換 啟用 Account API 以開啟功能。

啟用後,可設定 近期驗證 (Recent authentication) 時間窗(1 至 120 分鐘,預設 10 分鐘),以及識別資訊、個人資料、第三方權杖存取的每欄位權限。每個欄位支援 Off、ReadOnly 或 Edit,預設為 Off。

  1. 安全性欄位:
    • 包含:主要電子郵件、主要手機、社交身分、密碼、通行密鑰 (passkeys)、MFA、個人存取權杖。
    • 敏感操作需來自第一方應用程式的近期使用者驗證——存取權杖的 acr 必須符合 urn:logto:acr:1fa,且在設定的近期驗證時間窗內(詳見 OIDC 進階驗證 (Step-up authentication))。
    • 若要使用 WebAuthn 通行密鑰作為 MFA,請將前端應用程式網域加入 WebAuthn 相關來源 (Related Origins),以便帳戶中心與登入體驗共用通行密鑰。詳見 連結新 WebAuthn 通行密鑰。
  2. 個人資料欄位:
    • 包含:使用者名稱、姓名、大頭貼、個人資料(其他標準屬性)、自訂資料。
    • 終端使用者可直接編輯,唯 username 仍需近期驗證。
  3. 秘密保管庫 (Secret vault):
    • 對於 OIDC 或 OAuth 社交與企業連接器,Logto 秘密保管庫 會在驗證後安全儲存第三方存取權杖與重新整理權杖。應用程式可直接呼叫外部 API(如同步 Google 行事曆),無需再次提示使用者登入。啟用 Account API 後即可自動取得權杖。
  4. 工作階段管理 (Session management):
    • 啟用後,使用者可檢視並管理其所有啟用中的工作階段,包括裝置資訊與上次登入時間,也可撤銷特定裝置的工作階段以登出。
    • 此 Sessions 欄位權限同時控制使用者授權應用程式(Grants)API(檢視與撤銷)。
    • 存取工作階段與授權管理需與安全性欄位相同的近期驗證。

如何存取 Account API​

備註:

為確保存取權杖具備正確權限,請確認你已在 Logto 設定中正確配置對應的權限範圍 (Scopes)。

例如,POST /api/my-account/primary-email 需配置 email 權限範圍;POST /api/my-account/primary-phone 需配置 phone 權限範圍。

import { type LogtoConfig, UserScope } from '@logto/js';

const config: LogtoConfig = {
// ...其他選項
// 根據需求新增適當的權限範圍
scopes: [
UserScope.Email, // 對應 `{POST,DELETE} /api/my-account/primary-email` API
UserScope.Phone, // 對應 `{POST,DELETE} /api/my-account/primary-phone` API
UserScope.CustomData, // 管理自訂資料
UserScope.Address, // 管理地址
UserScope.Identities, // 身分與 MFA 相關 API
UserScope.Profile, // 管理使用者個人資料
UserScope.Sessions, // 管理使用者工作階段與應用程式授權
],
};

取得存取權杖​

在應用程式中設置 SDK 後,可使用 client.getAccessToken() 方法取得存取權杖。此權杖為不透明權杖 (Opaque token),可用於存取 Account API。

若未使用官方 SDK,則在向 /oidc/token 請求存取權杖時,resource 應設為空字串。

使用存取權杖存取 Account API​

呼叫 Account API 時,請將存取權杖以 Bearer 格式(Bearer YOUR_TOKEN)放在 HTTP 標頭的 Authorization 欄位。

以下為取得使用者帳戶資訊的範例:

curl https://[tenant-id].logto.app/api/my-account \
-H 'authorization: Bearer <access_token>'

管理基本帳戶資訊​

取得使用者帳戶資訊​

可透過 GET /api/my-account 端點取得使用者資料。

curl https://[tenant-id].logto.app/api/my-account \
-H 'authorization: Bearer <access_token>'

回應內容範例如下:

{
"id": "...",
"username": "...",
"name": "...",
"avatar": "..."
}

回應欄位會依帳戶中心設定而有所不同。

更新基本帳戶資訊​

基本帳戶資訊包含使用者名稱、姓名、大頭貼、自訂資料及其他個人資料。

要更新 username、name、avatar、customData,可使用 PATCH /api/my-account 端點。

curl -X PATCH https://[tenant-id].logto.app/api/my-account \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"username":"...","name":"...","avatar":"..."}'

若要更新其他個人資料(如 familyName、givenName、middleName、nickname、profile(個人頁面網址)、website、gender、birthdate、zoneinfo、locale、address),可使用 PATCH /api/my-account/profile 端點。

curl -X PATCH https://[tenant-id].logto.app/api/my-account/profile \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"familyName":"...","givenName":"..."}'

管理識別資訊與其他敏感資料​

出於安全考量,敏感的 Account API 操作需來自第一方應用程式的近期使用者驗證:存取權杖必須帶有 acr 並符合 urn:logto:acr:1fa,且 auth_time 在租戶設定的 近期驗證 時間窗內(預設 600 秒 / 10 分鐘,可設定 60 至 7,200 秒)。

若存取權杖缺少 urn:logto:acr:1fa 或已超過時間窗,Account API 會回傳 401 Unauthorized,並帶有 RFC 9470 WWW-Authenticate 標頭(error="insufficient_user_authentication"、acr_values="urn:logto:acr:1fa"、max_age="<window>")。請依據這些參數啟動 OIDC 進階驗證 (Step-up authentication) 並以新權杖重試。

備註:

綁定新電子郵件、手機、社交身分或 WebAuthn 通行密鑰時,也需透過 Verification API 驗證新識別資訊或因子所有權,並於請求內容帶入 newIdentifierVerificationRecordId,詳見下方各節。

更新使用者密碼​

要更新使用者密碼,可使用 POST /api/my-account/password 端點。

curl -X POST https://[tenant-id].logto.app/api/my-account/password \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"password":"..."}'
提示:

如同註冊時設定密碼,透過 Account API 設定的密碼也必須符合你在 Console > 安全性 > 密碼政策 設定的 密碼政策。若密碼不符政策,Logto 會回傳詳細驗證結果與錯誤訊息。

備註:

使用此方法前,需先設定電子郵件連接器,並確認已配置 BindNewIdentifier 範本。

要更新或綁定新電子郵件,需先驗證該電子郵件的所有權。

呼叫 POST /api/verifications/verification-code 端點請求驗證碼。

curl -X POST https://[tenant-id].logto.app/api/verifications/verification-code \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"identifier":{"type":"email","value":"..."}}'

回應中會有 verificationId,並會收到驗證碼於該電子郵件,請用於驗證。

curl -X POST https://[tenant-id].logto.app/api/verifications/verification-code/verify \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"identifier":{"type":"email","value":"..."},"verificationId":"...","code":"..."}'

驗證成功後,即可呼叫 PATCH /api/my-account/primary-email 更新使用者電子郵件,並於請求內容帶入 verificationId 作為 newIdentifierVerificationRecordId。

curl -X POST https://[tenant-id].logto.app/api/my-account/primary-email \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"email":"...","newIdentifierVerificationRecordId":"<verification_record_id_from_new_email>"}'
提示:

如同註冊時收集的電子郵件,透過 Account API 綁定的電子郵件也必須通過你在 Console > 安全性 > 封鎖清單 設定的 封鎖清單 驗證。若違反政策,Logto 會拒絕請求並回傳詳細錯誤。

移除使用者電子郵件​

要移除使用者電子郵件,可使用 DELETE /api/my-account/primary-email 端點。

curl -X DELETE https://[tenant-id].logto.app/api/my-account/primary-email \
-H 'authorization: Bearer <access_token>'

管理手機​

備註:

使用此方法前,需先設定簡訊連接器,並確認已配置 BindNewIdentifier 範本。

與更新電子郵件類似,可使用 PATCH /api/my-account/primary-phone 端點更新或綁定新手機,並可用 DELETE /api/my-account/primary-phone 端點移除使用者手機。

要綁定新社交連結,需先透過 POST /api/verifications/social 取得授權網址。

curl -X POST https://[tenant-id].logto.app/api/verifications/social \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"connectorId":"...","redirectUri":"...","state":"..."}'
  • connectorId:對應 社交連接器 的 ID。
  • redirectUri:使用者授權後的導向網址,需於此網址架設網頁並接收回呼。
  • state:授權後回傳的狀態字串,為防止 CSRF 攻擊的隨機字串。

回應中會有 verificationRecordId,請妥善保存。

使用者授權應用程式後,會於 redirectUri 收到帶有 state 參數的回呼。接著可用 POST /api/verifications/social/verify 端點驗證社交連結。

curl -X POST https://[tenant-id].logto.app/api/verifications/social/verify \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"connectorData":"...","verificationRecordId":"..."}'

connectorData 為社交連接器授權後回傳的資料,需於回呼頁面解析 redirectUri 的查詢參數並包裝為 JSON 作為 connectorData 欄位值。

最後,可用 POST /api/my-account/identities 端點綁定社交連結。

curl -X POST https://[tenant-id].logto.app/api/my-account/identities \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"newIdentifierVerificationRecordId":"<verification_record_id_from_social>"}'

移除社交連結​

要移除社交連結,可使用 DELETE /api/my-account/identities 端點。

curl -X DELETE https://[tenant-id].logto.app/api/my-account/identities/[connector_target_id] \
-H 'authorization: Bearer <access_token>'
備註:

請先啟用 MFA 與 WebAuthn。

備註:

使用此方法前,需於 帳戶中心設定 啟用 mfa 欄位。

步驟 1:將前端應用程式來源加入相關來源

WebAuthn 通行密鑰綁定於特定主機名稱(Relying Party ID, RP ID)。僅 RP ID 網域下的應用程式可註冊或驗證該通行密鑰。

由於前端應用程式與 Logto 驗證頁面網域不同,需於 相關來源 (Related Origins) 設定允許跨網域操作通行密鑰。

Logto 如何決定 RP ID:

  • 預設情境:僅使用 Logto 預設網域 https://[tenant-id].logto.app,RP ID 為 [tenant-id].logto.app
  • 自訂網域:若設定 自訂網域 如 https://auth.example.com,RP ID 為 auth.example.com

設定相關來源:

使用 PATCH /api/account-center 端點新增前端應用程式來源。例如帳戶中心運行於 https://account.example.com:

curl -X PATCH https://[tenant-id].logto.app/api/account-center \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"webauthnRelatedOrigins":["https://account.example.com"]}'
備註:

WebAuthn 最多支援 5 個唯一 eTLD+1 標籤作為相關來源。eTLD+1(有效頂級網域加一層)為可註冊的網域部分。例如:

  • https://example.com、https://app.example.com、https://auth.example.com 算作一個標籤(example.com)
  • https://shopping.com、https://shopping.co.uk、https://shopping.co.jp 也算作一個標籤(shopping)
  • https://example.com 與 https://another.com 算作兩個標籤

若需支援超過 5 個不同網域,請參閱 Related Origin Requests 文件。

步驟 2:請求新註冊選項

使用 POST /api/verifications/web-authn/registration 端點請求註冊新通行密鑰。Logto 允許每個帳戶註冊多把通行密鑰。

curl -X POST https://[tenant-id].logto.app/api/verifications/web-authn/registration \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json'

回應範例:

{
"registrationOptions": "...",
"verificationRecordId": "...",
"expiresAt": "..."
}

步驟 3:於本地瀏覽器註冊通行密鑰

以 @simplewebauthn/browser 為例,可用 startRegistration 函式於本地瀏覽器註冊通行密鑰。

import { startRegistration } from '@simplewebauthn/browser';

// ...
const response = await startRegistration({
optionsJSON: registrationOptions, // 步驟 1 伺服器回傳資料
});
// 保存 response 以供後續使用

步驟 4:驗證通行密鑰註冊

使用 POST /api/verifications/web-authn/registration/verify 端點驗證通行密鑰註冊。

此步驟會驗證認證器產生的加密簽章,確保通行密鑰合法產生且傳輸過程未被竄改。

curl -X POST https://[tenant-id].logto.app/api/verifications/web-authn/registration/verify \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"payload":"...","verificationRecordId":"..."}'
  • payload:步驟 2 本地瀏覽器回傳資料
  • verificationRecordId:步驟 1 伺服器回傳的驗證紀錄 ID

步驟 5:綁定通行密鑰

最後,使用 POST /api/my-account/mfa-verifications 端點將通行密鑰綁定至使用者帳戶。

curl -X POST https://[tenant-id].logto.app/api/my-account/mfa-verifications \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"type":"WebAuthn","newIdentifierVerificationRecordId":"..."}'
  • type:MFA 因子類型,目前僅支援 WebAuthn
  • newIdentifierVerificationRecordId:步驟 1 伺服器回傳的驗證紀錄 ID

管理現有 WebAuthn 通行密鑰​

管理現有 WebAuthn 通行密鑰,可使用 GET /api/my-account/mfa-verifications 端點取得目前通行密鑰與其他 MFA 驗證因子。

curl https://[tenant-id].logto.app/api/my-account/mfa-verifications \
-H 'authorization: Bearer <access_token>'

回應範例:

[
{
"id": "...",
"type": "WebAuthn",
"name": "...",
"agent": "...",
"createdAt": "...",
"updatedAt": "..."
}
]
  • id:驗證因子 ID
  • type:驗證因子類型,WebAuthn 通行密鑰為 WebAuthn
  • name:通行密鑰名稱,選填
  • agent:通行密鑰的使用者代理資訊

更新通行密鑰名稱可用 PATCH /api/my-account/mfa-verifications/{verificationId}/name 端點:

curl -X PATCH https://[tenant-id].logto.app/api/my-account/mfa-verifications/{verificationId}/name \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"name":"..."}'

刪除通行密鑰可用 DELETE /api/my-account/mfa-verifications/{verificationId} 端點:

curl -X DELETE https://[tenant-id].logto.app/api/my-account/mfa-verifications/{verificationId} \
-H 'authorization: Bearer <access_token>'
備註:

請先啟用 MFA 與 TOTP。

備註:

使用此方法前,需於 帳戶中心設定 啟用 mfa 欄位。

步驟 1:產生 TOTP 密鑰

使用 POST /api/my-account/mfa-verifications/totp-secret/generate 端點產生 TOTP 密鑰。

curl -X POST https://[tenant-id].logto.app/api/my-account/mfa-verifications/totp-secret/generate \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json'

回應範例:

{
"secret": "..."
}

步驟 2:將 TOTP 密鑰顯示給使用者

使用密鑰產生 QR code 或直接顯示給使用者,讓其加入驗證器 App(如 Google Authenticator、Microsoft Authenticator、Authy)。

QR code URI 格式:

otpauth://totp/[Issuer]:[Account]?secret=[Secret]&issuer=[Issuer]

範例:

otpauth://totp/YourApp:user@example.com?secret=JBSWY3DPEHPK3PXP&issuer=YourApp

步驟 3:綁定 TOTP 因子

使用者將密鑰加入驗證器 App 後,需驗證並綁定至帳戶。使用 POST /api/my-account/mfa-verifications 端點綁定 TOTP 因子。

curl -X POST https://[tenant-id].logto.app/api/my-account/mfa-verifications \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"type":"Totp","secret":"..."}'
  • type:必須為 Totp
  • secret:步驟 1 產生的 TOTP 密鑰
備註:

每位使用者僅能有一組 TOTP 因子。若已存在 TOTP 因子,新增時會回傳 422 錯誤。

取代現有 TOTP​

若使用者已設定 TOTP 因子,可用 PUT /api/my-account/mfa-verifications/totp 端點以新密鑰取代,該操作具冪等性,會移除舊 TOTP 並綁定新密鑰。

備註:

使用此方法前,需於 帳戶中心設定 啟用 mfa 欄位。

步驟 1:產生新 TOTP 密鑰

使用 POST /api/my-account/mfa-verifications/totp-secret/generate 端點產生新密鑰,並依 綁定新 TOTP 步驟顯示給使用者。

步驟 2:取代 TOTP 因子

curl -X PUT https://[tenant-id].logto.app/api/my-account/mfa-verifications/totp \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"secret":"...","code":"..."}'
  • secret:步驟 1 產生的新 TOTP 密鑰
  • code:由新密鑰產生的 TOTP 驗證碼,用於確認綁定

管理備用驗證碼 (Backup codes)​

備註:

使用此方法前,需於 帳戶中心設定 啟用 mfa 欄位。

步驟 1:產生新備用驗證碼

使用 POST /api/my-account/mfa-verifications/backup-codes/generate 端點產生 10 組新備用驗證碼。

curl -X POST https://[tenant-id].logto.app/api/my-account/mfa-verifications/backup-codes/generate \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json'

回應範例:

{
"codes": ["...", "...", "..."]
}

步驟 2:將備用驗證碼顯示給使用者

在綁定備用驗證碼前,必須顯示給使用者並提醒:

  • 立即下載或抄寫這些驗證碼
  • 妥善保存於安全處
  • 每組驗證碼僅能使用一次
  • 這些驗證碼為遺失主要 MFA 方法時的最後救援

建議以清楚、易於複製的格式顯示,並可提供下載(如文字檔或 PDF)。

步驟 3:綁定備用驗證碼至帳戶

使用 POST /api/my-account/mfa-verifications 端點綁定備用驗證碼至帳戶。

curl -X POST https://[tenant-id].logto.app/api/my-account/mfa-verifications \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"type":"BackupCode","codes":["...","...","..."]}'
  • type:必須為 BackupCode
  • codes:前一步產生的備用驗證碼陣列
備註:
  • 每位使用者僅能有一組備用驗證碼。若全部用盡,需重新產生並綁定新組。
  • 備用驗證碼不能是唯一 MFA 因子,必須至少啟用一種其他 MFA(如 WebAuthn 或 TOTP)。
  • 每組備用驗證碼僅能使用一次。

檢視現有備用驗證碼

要檢視現有備用驗證碼及其使用狀態,請使用 GET /api/my-account/mfa-verifications/backup-codes 端點:

curl https://[tenant-id].logto.app/api/my-account/mfa-verifications/backup-codes \
-H 'authorization: Bearer <access_token>'

回應範例:

{
"codes": [
{
"code": "...",
"usedAt": null
},
{
"code": "...",
"usedAt": "2024-01-15T10:30:00.000Z"
}
]
}
  • code:備用驗證碼
  • usedAt:驗證碼使用時間,未使用則為 null

管理兩步驟驗證設定​

備註:

使用這些方法前,需於 帳戶中心設定 啟用 mfa 欄位。

終端使用者可針對帳戶開啟或關閉兩步驟驗證。常見情境如:使用者已設定 MFA 因子(如通行密鑰),但僅想於登入時使用,而不想作為額外驗證步驟——關閉兩步驟驗證後,登入時可略過 MFA 驗證,但 MFA 因子仍保留。此設定由每位使用者的 skipMfaOnSignIn 控制。

取得目前 MFA 設定

使用 GET /api/my-account/mfa-settings 端點取得目前兩步驟驗證設定。

curl https://[tenant-id].logto.app/api/my-account/mfa-settings \
-H 'authorization: Bearer <access_token>'

回應範例:

{
"skipMfaOnSignIn": false
}

更新 MFA 設定

要開啟或關閉兩步驟驗證,請使用 PATCH /api/my-account/mfa-settings 端點。

curl -X PATCH https://[tenant-id].logto.app/api/my-account/mfa-settings \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json' \
--data-raw '{"skipMfaOnSignIn":true}'
  • skipMfaOnSignIn:設為 true 以關閉兩步驟驗證,設為 false 則開啟
備註:

此設定僅於 MFA 政策為 選用 (Optional) 時生效。若 MFA 為 強制 (Mandatory) 或 自適應 (Adaptive),skipMfaOnSignIn 設定將被忽略,MFA 仍會強制執行。

管理使用者工作階段​

列出啟用中的工作階段

要列出使用者啟用中的工作階段,可使用 GET /api/my-account/sessions 端點。

備註:
  • 需有 UserScope.Sessions 權限範圍
  • 帳戶中心設定中的 Sessions 欄位需設為 ReadOnly 或 Edit
curl https://[tenant-id].logto.app/api/my-account/sessions \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json'

依工作階段 ID 撤銷工作階段

要撤銷特定工作階段,請使用 DELETE /api/my-account/sessions/{sessionId} 端點。

備註:
  • 需有 UserScope.Sessions 權限範圍
  • 帳戶中心設定中的 Sessions 欄位需設為 Edit
curl -X DELETE https://[tenant-id].logto.app/api/my-account/sessions/{sessionId} \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json'

可選查詢參數:

  • revokeGrantsTarget:可選,指定撤銷工作階段時要同時撤銷的授權目標。可選值:
    • all:撤銷該工作階段下所有授權
    • firstParty:僅撤銷第一方應用程式授權(建議大多數情境,僅撤銷自家 App 存取權,第三方 App 授權不受影響,提升使用者體驗)
    • 未指定:預設僅撤銷未含 offline_access 權限範圍的授權,通常即撤銷該工作階段下非重新整理權杖的授權

管理使用者授權應用程式(Grants)​

當使用者需於帳戶設定頁檢視與撤銷授權應用程式時,可使用授權應用程式(Grants)API。

備註:
  • 應用程式授權 API 與工作階段 API 共用相同權限模型
  • 需有 UserScope.Sessions 權限範圍
  • 帳戶中心設定中的 Sessions 欄位需啟用:
    • ReadOnly 或 Edit 可列出授權
    • Edit 可撤銷授權

列出啟用中的應用程式授權

要列出目前使用者啟用中的應用程式授權,請使用 GET /api/my-account/grants 端點。

curl https://[tenant-id].logto.app/api/my-account/grants \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json'

可選查詢參數:

  • appType=firstParty:僅回傳第一方應用程式授權
  • appType=thirdParty:僅回傳第三方應用程式授權
  • 不指定 appType:回傳所有啟用中的授權
curl "https://[tenant-id].logto.app/api/my-account/grants?appType=thirdParty" \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json'

依授權 ID 撤銷應用程式授權

要撤銷特定應用程式授權,請使用 DELETE /api/my-account/grants/{grantId} 端點。

curl -X DELETE https://[tenant-id].logto.app/api/my-account/grants/{grantId} \
-H 'authorization: Bearer <access_token>' \
-H 'content-type: application/json'

撤銷授權後,該授權下先前發出的不透明存取權杖與重新整理權杖將失效。