管理使用者授權應用程式(授權記錄,grants)
應用程式授權記錄(app grants)代表使用者對特定用戶端應用程式的授權狀態。
當使用者或管理員需要檢視已授權的應用程式並撤銷應用程式存取權(而不影響整個 Logto 工作階段)時,請使用授權記錄管理功能。
當授權記錄被撤銷時,先前發出的不透明權杖 (Opaque tokens) 和重新整理權杖 (Refresh tokens) 會失效。JWT 存取權杖 (Access tokens) 為無狀態,因此先前發出的權杖會在過期前持續有效。
選擇正確的管理方式
| 情境 | 建議路徑 |
|---|---|
| 讓已登入使用者自行管理其應用程式授權 | Account API |
| 讓管理員或客服團隊為目標使用者管理授權記錄 | Management API |
| 讓營運人員於 UI 管理第三方應用程式授權 | 管理主控台 (Admin Console) |
直接授權記錄管理 API
Account API(自助服務)
於終端使用者帳戶設定頁面使用 Account API:
GET /api/my-account/grantsDELETE /api/my-account/grants/{grantId}- 參考:透過 Account API 管理使用者授權應用程式(授權記錄)
Management API(管理工具)
於管理工具與客服流程中使用 Management API:
GET /api/users/{userId}/grantsDELETE /api/users/{userId}/grants/{grantId}- 參考:透過 Management API 管理使用者授權應用程式(授權記錄)
依應用程式類型篩選授權記錄清單
授權記錄查詢端點支援可選查詢參數 appType:
appType=firstParty:僅列出第一方應用程式授權記錄。appType=thirdParty:僅列出第三方應用程式授權記錄。- 省略
appType:回傳所有有效授權記錄。
動態應用程式 (Dynamic app) 用戶端屬於第三方應用程式,因此其授權記錄會以 appType=thirdParty 回傳。用戶端 ID URL 作為應用程式 ID 使用。
於主控台管理第三方應用程式授權
在 Logto 主控台 (Console) 的使用者詳情頁面,可檢視並撤銷已授權的第三方應用程式。
撤銷工作階段時一併撤銷授權記錄
透過 DELETE /api/my-account/sessions/{sessionId} 撤銷工作階段時,可使用可選查詢參數 revokeGrantsTarget 控制授權記錄撤銷範圍:
all:撤銷與該工作階段關聯的所有應用程式授權記錄。firstParty:僅撤銷第一方應用程式的授權記錄。
關於工作階段層級行為與端點說明,請參閱 管理使用者工作階段 與 登出 (Sign-out)。
相關資源
工作階段 (Sessions) 管理使用者工作階段透過 Account API 管理使用者授權應用程式(授權記錄)
透過 Management API 管理使用者授權應用程式(授權記錄)