簡體   English   中英

在注冊時創建 Cognito 用戶池

[英]Create Cognito User Pools on registration

我有一個帶有 AWS Amplify 后端和 cognito 身份驗證的 Web 應用程序。 我想實現一個多租戶應用程序。

因此,用戶填寫注冊表,然后它應該創建一個單獨的用戶池並為此分配該用戶。

登錄時,您應該提供租戶 ID。 (類似於工作區松弛)在用戶池中應該有不同的角色,如法律、管理員、應用程序用戶、網絡用戶。

我正在努力創建用戶池...是否有一種簡單的方法或更好的方法來實現我的目標?

謝謝!

同意樓上的回答。 要從字面上回答問題,您可以像這樣在 Typescript 中創建一個新池。 Params 對象有很多要求,您可以在此處的文檔中找到這些要求。

import { CognitoIdentityServiceProvider } from "aws-sdk";
const cog = new CognitoIdentityServiceProvider(); 
const params: CognitoIdentityServiceProvider.Types.CreateUserPoolRequest = {
...
};

cog
  .createUserPool(params)
  .promise()
  .then((result) => {
    console.log("Created", result);
  });

每個用戶在 Cognito 中都需要是唯一的,因此如果您使用單個池,可能會出現用戶在一個“租戶”中注冊的情況,但無法在另一個“租戶”中注冊。

您可以考慮為每個用戶設置自定義屬性,而不是為每個租戶設置單獨的用戶池,例如tenant-id

在注冊時,用戶會被分配他的tenant-id ,可以從列表、cookie、url 或其他方式提供。

然后可以咨詢此值以根據用戶分配的tenant-id提供用戶訪問權限和數據

您的方法面臨的挑戰是最初不存在為每個租戶指定的用戶池,這使得第一次注冊過程依賴於不存在的用戶池。 這似乎是使用 Cognito 的反模式。 如果您從全局用戶池開始,然后生成一個新的用戶池,則用戶將在兩個用戶池中擁有兩個身份。

或者,您可以預先為每個租戶預先構建一個自定義用戶池,作為初始租戶配置的一部分,並為每個注冊(包括第一個用戶)使用適當的用戶池。

注意每個帳戶的最大用戶池數為 1,000。 這可以增加 om 請求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM