npm 包 @aws-sdk/credential-provider-cognito-identity 使用教程

阅读时长 7 分钟读完

介绍

Amazon Web Services (AWS) 是由亚马逊(Amazon)旗下公司提供的云计算服务,包括服务器、存储、数据库、分析、应用程序服务等。在前端开发中,我们可能需要使用 AWS SDK 进行开发和调试。在使用 AWS SDK 时,需要提供 AWS 安全凭证来访问 AWS 资源。而 @aws-sdk/credential-provider-cognito-identity 是一个提供 Cognito 身份池认证的 AWS SDK 凭证提供人。

前置要求

在使用 @aws-sdk/credential-provider-cognito-identity 之前,你需要有基本的 AWS 和身份池认证的知识。如果你还没有学习过 AWS Cognito 服务,可以先学习官方文档或者相关的教程。

安装和使用

使用 npm 安装 @aws-sdk/credential-provider-cognito-identity:

使用 @aws-sdk/credential-provider-cognito-identity 示例代码:

-- -------------------- ---- -------
------ -
  ----------------------
  -------------
  ---------------------------------
- ---- -----------------------------------

------ - ----------------------- - ---- ------------------------------------------------

-- -- --- --- ------ ---- --
----- ------ - ------------
----- ------------------------ - -------------------------------------------------

----- ------ - --- ----------------------- ------- ------ ---

-- ----- --
----- ----------- - -
  --------------- -------------------------
--

----- ------------ - --- --------------------------

----- - ---------- - - ----- --------------------------

-- ------
----- -------------------- - -
  -----------
--

----- --------------------- - --- -------------------------------------------------------

----- ----------- - ----- -------------------------
  -------
  --------------- -------------------------
  ------- -
    ----------------------------------------------------------------
      -------------------
  --
---

-------------------------
展开代码

首先,我们使用 @aws-sdk/client-cognito-identity 中的 CognitoIdentityClient 类创建了一个 AWS SDK 客户端。接着,我们使用 GetIdCommandGetCredentialsForIdentityCommand 命令获取身份池 ID 和安全凭证。最后,我们从身份池中调用 fromCognitoIdentityPool 函数,将身份池 ID 和登录凭证传递给该函数,以获取安全凭证。

操作示例

以下是一个操作示例,使用 @aws-sdk/credential-provider-cognito-identity 在 React Native 中调用 Cognito 身份池。

首先,我们需要安装 @aws-sdk/client-cognito-identity, @aws-sdk/credential-provider-cognito-identityaws-amplify

然后,我们可以使用如下代码调用 Cognito 身份池:

-- -------------------- ---- -------
------ - ---------------------- ------------- -------------------------------- - ---- -----------------------------------
------ - ----------------------- - ---- ------------------------------------------------
------ -------- - ---- - ---- --------------

-- -- --- --- ------ ---- --
----- ------ - ------------
----- ------------------------ - -------------------------------------------------
----- -------------------- - ----------------------

-------------------
  ----- -
    --------------- -------------------------
    ------- -------
    ----------- ---------------------
    -------------------- -----------------------------
    ---------------- ------
    ----------------------- ---------------------
  --
---

----- -------- ----------------------- -
  --- -
    ----- ---- - ----- --------------------------------
    ----- ---------- - ----- ----------------------
    ----- ------ - --- ----------------------- ------- ------ ---
    ----- ----------- - -
      --------------- -------------------------
    --
    ----- ------------ - --- --------------------------
    ----- - ---------- - - ----- --------------------------
    ----- ----------- - ----- -------------------------
      -------
      --------------- -------------------------
      ------- -
        ----------------------------------------------------------------
          -------------------
        --
      ---
      ------ ------------
    - ----- ------- -
      ------------------- -- -------
    -
-
展开代码

在上面的代码中,要调用 Cognito 身份池,我们需要初始化 Amplify 并配置身份池,设置身份池 ID、AWS SDK 区域、用户池 ID、用户池 Web 客户端 ID、强制登录标识和身份验证流类型。然后,我们获取当前身份池 ID 和用户池登录凭证,并使用 fromCognitoIdentityPool 函数获取 Cognito 身份池的安全凭证。

总结

本文介绍了如何使用 npm 包 @aws-sdk/credential-provider-cognito-identity 获取 Cognito 身份池的安全凭证。我们提供了使用最新 AWS SDK v3 编写的示例代码,以及使用 Amplify 客户端库的操作示例。希望本文能够帮助您了解如何在前端开发中使用 AWS SDK,并且掌握如何使用 @aws-sdk/credential-provider-cognito-identity 来处理安全凭证。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/5f6f5775a9b7065299ccba6c

纠错
反馈

纠错反馈