前言
AWS Cognito 是一项 AWS 的服务,它为应用程序提供了安全和用户身份验证。它简化了开发人员在应用程序中集成认证和授权的过程,同时为应用程序的用户提供了强大的身份验证选项。
在这篇文章里,我们将讨论如何使用 @aws-sdk/client-cognito-identity npm 包来访问 AWS Cognito 服务。我们将探索如何在 Node.js 中创建 Cognito 身份池、如何使用该身份池来认证(或未认证)的用户,并且我们将介绍一些常用的操作。
安装 @aws-sdk/client-cognito-identity
首先,我们需要在我们的 Node.js 项目中安装 @aws-sdk/client-cognito-identity npm 包。你可以使用以下命令进行安装:
npm install @aws-sdk/client-cognito-identity
这将在你的项目中安装这个包及其所有依赖项。
创建身份池
在使用身份池之前,我们需要在 AWS Cognito 上创建身份池。要创建身份池,我们需要使用 AWS 管理控制台。
- 登录到 AWS 管理控制台:https://console.aws.amazon.com/
- 导航到 Cognito 服务并选择“身份池”选项卡。
- 单击“新建身份池”按钮,在出现的屏幕上填写身份池的详细信息。
当你完成以上步骤并保存你的身份池后,AWS 将为你创建一个唯一的身份池 ID。现在,我们可以在 Node.js 中使用此 ID 来访问我们的身份池。
认证用户
在获取可以使用以前注册的用户的凭证之前,您首先必须验证用户是否已经注册并已通过 AWS Cognito 身份验证。 下面是一个认证用户的示例代码:
-- -------------------- ---- ------- ----- - ---------------------- ------------ - - -------------------------------------------- ----- ------ - --- ----------------------- ------- --- --- --- --- ----- -------- ----------------------------- --------- ------ - ----- ------ - - --------------- --------------- ------- - ----------- ----- - -- ----- ------- - --- --------------------- ----- -------- - ----- --------------------- ------ -------------------- - -------------------- ---- -------------------------------- --- ----------------------- ----- ------ -- --------
在此示例中,我们首先实例化了 CognitoIdentityClient,然后使用 getIdentityId()
方法从身份池中检索用户的身份 ID。在调用方法时,我们传入身份池 ID、身份验证提供程序和用户 ID token。
如果用户已通过身份验证,则 getIdentityId()
将返回用户的身份 ID。否则,该方法将引发错误。
列出身份
我们可以使用 AWS Cognito 身份池 API 的 ListIdentities
方法列出我们的身份池中的所有现有身份。下面是一个列出身份的示例代码:
-- -------------------- ---- ------- ----- - ---------------------- --------------------- - - -------------------------------------------- ----- ------ - --- ----------------------- ------- --- --- --- --- ----- -------- ------------------------------ - ----- ------ - - --------------- -------------- -- ----- ------- - --- ------------------------------ ----- -------- - ----- --------------------- ------ -------------------- - --------------------- ---- ------------------ -- ------------------------ -------------- -- --------------------
在此示例中,我们首先实例化了 CognitoIdentityClient,然后使用 listIdentities()
方法获取我们身份池中的所有身份。在调用方法时,我们只需要传入身份池 ID。
添加身份
我们可以使用 AWS Cognito 身份池 API 的 CreateIdentityPool
方法创建新的身份。下面是一个添加身份的示例代码:
-- -------------------- ---- ------- ----- - ---------------------- ------------------------- - - -------------------------------------------- ----- ------ - --- ----------------------- ------- --- --- --- --- ----- -------- ------------------------------------ ------------------------------- - ----- ------ - - ------------------------------- ------------------------------- ----------------- ---------------- -- ----- ------- - --- ---------------------------------- ----- -------- - ----- --------------------- ------ ------------------------ - ------------------------------ ----- ---------------------- -- -------------------- -- ---------------------- -------------- -- --------------------
在此示例中,我们首先实例化了 CognitoIdentityClient,然后使用 createIdentityPool()
方法创建新的身份池。在调用方法时,我们传入身份池名称和是否允许未经身份验证身份的身份池。
一旦身份池成功创建,createIdentityPool()
将返回新的身份池 ID。
总结
在本文中,我们已经了解了如何使用 @aws-sdk/client-cognito-identity npm 包直接与 AWS Cognito 服务交互。我们学习了如何创建身份池、认证用户、列出身份和添加身份。希望这篇文章对你有帮助,欢迎在下面的评论区做出回复。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f6f5775a9b7065299ccba6b