邀請組織成員
在多租戶(multi-tenancy)應用程式中,常見需求之一是邀請成員加入組織。本指南將帶你瞭解實作此功能的步驟與技術細節。
流程總覽
整體流程如下圖所示:
建立組織角色
在邀請成員之前,請先建立組織角色。參閱 組織範本 以深入瞭解角色與權限。
本指南將建立兩個典型的組織角色:admin 與 member。
admin 角色擁有組織內所有資源的完整存取權限,而 member 角色則有較有限的權限。例如:
admin角色:read:data- 讀取所有組織資料資源的權限。write:data- 寫入所有組織資料資源的權限。delete:data- 刪除所有組織資料資源的權限。invite:member- 邀請成員加入組織。manage:member- 管理組織內成員。delete:member- 移除組織成員。
member角色:read:data- 讀取所有組織資料資源的權限。write:data- 寫入所有組織資料資源的權限。invite:member- 邀請成員加入組織。
你可以在 Logto Console 輕鬆完成這些設定,也可以透過 Logto Management API 以程式方式建立組織角色。
設定你的電子郵件連接器
由於邀請是透過電子郵件發送,請確保你的 電子郵件連接器 已正確設定。若要發送邀請,請設定一個使用類型為 OrganizationInvitation 的 電子郵件範本。你可以在內容中加入組織(如名稱、Logo)與邀請人(如電子郵件、名稱)的 變數,並根據需求自訂 多語系範本。
以下為 OrganizationInvitation 使用類型的電子郵件範本範例:
{
"subject": "歡迎加入我的組織 (Welcome to my organization)",
"content": "<p>透過此 <a href=\"{{link}}\" target=\"_blank\">連結</a> 加入 {{organization.name}}。</p>",
"usageType": "OrganizationInvitation",
"type": "text/html"
}
電子郵件內容中的 {{link}} 佔位符會在郵件發送時自動替換為實際的邀請連結。
備註:
Logto Cloud 內建的「Logto email service」目前尚不支援 OrganizationInvitation 使用類型。請改為設定你自己的電子郵件連接器(如 SendGrid),並設置 OrganizationInvitation 範本。
透過 Logto Management API 處理邀請
備註:
如果你尚未設定 Logto Management API,請參閱 與 Management API 互動 以瞭解詳情。
使用 Logto Management API 建立組織邀請
組織功能中提供了一組與邀請相關的 Management API。你可以透過這些 API:
POST /api/organization-invitations:建立帶有指定組織角色的組織邀請。POST /api/one-time-tokens:為受邀者建立一次性權杖,供其接受邀請時驗證身分。進一步瞭解POST /api/organization-invitations/{id}/message:透過電子郵件將組織邀請發送給受邀者。
備註:
請求內容支援 link 屬性,因此你可以根據邀請 ID 組合自訂邀請連結。例如:
{
"link": "https://your-app.com/invitation/join?id=your-invitation-id&token=your-one-time-token&email=invitee-email"
}