如何在浏览器中跨页面保留 Cognito 身份

2023-12-31

我使用开发人员经过身份验证的身份通过客户端浏览器上的 Cognito 进行身份验证。当我的页面加载(或刷新)时,我希望我的应用程序能够记住身份,只要对象没有过期(我认为它会持续大约一个小时)。但是,我不知道如何从 Cognito 检索身份,而无需再次进行开发人员身份验证。

以下是代码在页面加载时执行的操作:

var cognitoCredentials

$(document).ready(function() { 
    "use strict";

    cognitoParams = {
      IdentityPoolId: 'us-east-1:xxxxxxx'
    };

    cognitoCredentials = new AWS.CognitoIdentityCredentials(cognitoParams);
    AWS.config.credentials = cognitoCredentials;

});

并且通过开发者认证登录后:

cognitoCredentials.params.IdentityId = output.identityId;
cognitoCredentials.params.Logins = {
    'cognito-identity.amazonaws.com': output.token
};
cognitoCredentials.expired = true;

如果我已经登录,然后刷新页面,然后尝试再次登录,我会收到一条错误消息,提示我正在尝试获取身份,而我已经拥有身份Error: Missing credentials in config(…) NotAuthorizedException: Missing credentials in config "Access to Identity 'us-east-1:xxxxxxx' is forbidden."

但是,我不知道如何访问它。如何检索凭据,以便在刷新页面时可以检测到 Cognito 提供的先前身份?


至少节省accessKeyId, secretAccessKey, sessionToken in sessionStorage页面之间。您可以将它们加载到 AWS.config.credentials 中(当然是在加载 AWS SDK 之后)。这比等待 Cognito 响应要快得多。请记住,您必须使用提供商之一的令牌手动刷新它们,并且这只在临时令牌过期(大约 1 小时)之前有效。

var credKeys = [
    'accessKeyId',
    'secretAccessKey',
    'sessionToken'
];

// After Cognito login
credKeys.forEach(function(key) {
    sessionStorage.setItem(key, AWS.config.credentials[key]);
});

// After AWS SDK load

AWS.config.region = 'us-east-1'; // pick your region

credKeys.forEach(function(key) {
    AWS.config.credentials[key] = sessionStorage.getItem(key);
});

// Now make your AWS calls to S3, DynamoDB, etc
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在浏览器中跨页面保留 Cognito 身份 的相关文章

  • 节点大小与 D3 中的子节点数量成正比

    我创建了这个点击 展开 折叠网络 http jsfiddle net 5Lv8gkqv http jsfiddle net 5Lv8gkqv var width 960 height 500 root name Chocolate tag
  • 我如何能够以两行显示标题,并且每行的字体大小不同?

    我正在使用 Google Chart API 创建时间线图 并希望将图的标题修改为两行 问题 我如何能够显示具有不同字体大小的两线图表标题 电流输出 理想输出 相关研究 我唯一能找到的是有人试图用饼图来做到这一点 但我尝试了但无法使其发挥作
  • 由于 apollo-client 未定义,无法解构 GraphQL 查询?

    我正在寻找调试与错误消息相关的问题 未捕获的类型错误 无法解构 0 apollo client WEBPACK IMPORTED MODULE 4 useQuery 因为它未定义 Context 我正在为我的 React js 项目设置后端
  • 暂停除了已激活的玩家之外的所有其他玩家。

    我有这个插件 它可以将不同的样式应用于 html5
  • Eslint errorring 导入没有扩展名的 jsx

    我正在尝试在 es6 中导入 jsx 文件而不需要 jsx 扩展名 import LoginErrorDialog from LoginErrorDialogView Not import LoginErrorDialog from Log
  • 为什么 iife 在一个简单的例子中不起作用?

    我不明白为什么函数表达式调用不起作用并抛出错误 你能给我解释一下吗 var a function x alert x function a 1 谢谢大家 任务比我想象的要容易得多 这是因为 JS 将 IIFE 解析为函数的参数调用 这样做时
  • Chrome 中的性能问题

    我目前正在从事一个相对较大的项目 使用 AngularJs 构建 应用程序的一部分是一个表单 您可以向其中添加任意数量的页面 不幸的是 添加了很多不必要的垃圾 即表示表单模型的对象可能会变得非常大 在某些时候 Chrome 基本上无法处理它
  • Snap.svg - 停止在可悬停元素的子元素上重新触发悬停事件

    对于一个项目 我使用的 SVG 形状由背景多边形和背景多边形上方的一些文本 我已将其转换为路径 组成 我正在使用 Snap svg 为我的形状设置动画 当我将鼠标悬停在多边形上时 形状应该缩放到特定尺寸 包括其中的所有内容 鼠标移开时 形状
  • 调整图像大小并将画布旋转 90 度

    这里有很多关于在 js 上使用画布旋转图像的主题 我阅读了其中的大部分内容 但无法找到解决我的问题的方法 我正在接收任何分辨率的图像 来自上传组件 我将其大小调整为 1024x768 如下所示 var canvas document cre
  • 尝试将数据存储在点击器网站中

    我正在尝试存储一个名为的变量score无论何时刷新 您都会一次又一次地使用它 我不明白的是它的代码是什么 我尝试了一些方法 但似乎都不起作用 这是我的答题器网站 但是当我尝试使用 JavaScript 来存储它时 它不起作用window o
  • 检查 jQuery 1.7 中是否存在基于文本的选择选项

    所以我有以下 HTML 片段
  • 将 UMD Javascript 模块导入浏览器

    你好 我正在对 RxJS 进行一些研究 我可以通过在浏览器中引用它来使用该库 如下所示 它使用全局对象命名空间变量 Rx 导入 我可以制作可观察的东西并做所有有趣的事情 当我将 src 更改为指向最新的 UMD 文件时 一切都会崩溃 如下所
  • 查询CloudSearch中字段是否存在

    假设我在 CloudSearch 中索引的文档列表中有一个名为 xyz 的可选字段 如何查询 CloudSearch 以使其仅返回包含 xyz 的文档 如果我预先知道它是一个正整数 我可能可以这样做来获取所需的列表 q xyz 0 q pa
  • 可以设置标题样式吗? (并且使用CSS或js?)[重复]

    这个问题在这里已经有答案了 我想知道是否可以设计一个title a href title This is a title Hello a 样式问题有两个方面 文本格式 编码 我猜这是可能的 所以在问题中这样做 工具提示样式 你能把它弄大一点
  • 正则表达式 - 从 markdown 字符串中提取所有标题

    我在用灰质 https www npmjs com package gray matter 以便将文件系统中的 MD 文件解析为字符串 解析器产生的结果是这样的字符串 n Clean er ReactJS Code Conditional
  • 使用 Vue 的多模式组件

    我在 Vue 中实现动态模式组件时遇到问题 A common approach I follow to display a set of data fetched from the db is I dump each of the rows
  • Vue 和 Vuex:处理依赖的计算属性

    我的应用程序是一个使用 Vuex 在 Vue 中构建的精简电子表格 关键组件是TableCollection Table and Row The TableCollection有一个包含多个的数组Table对象 每个Table有一个包含多个
  • 在 JavaScript 循环之外声明变量可以提高速度和内存?

    C 也有类似的问题 但我们没有看到 JavaScript 的任何问题 在循环内声明变量是否可以接受 假设循环有 200 次迭代 使用样本 2 相对于样本 1 是否有性能要求 内存和速度 我们使用 jQuery 来循环 它提高了我们将 var
  • 在 Javascript 中连接空数组

    我正在浏览一些代码 我想知道这有什么用处 grid push concat row 根据我的理解 它等同于 grid push row 为什么要大惊小怪 连接 你想使用 concat当您需要展平数组并且没有由其他数组组成的数组时 例如 va
  • Javascript - 水波纹效果

    我需要 JS 上的脚本 它将以 水波纹 样式更改 images html 抱歉 6MB GIF 文件 http fcuunited ru temp listening2 gif http fcunited ru temp listening

随机推荐

  • R 中的 QR 分解和 Cholesky 分解

    我最近读到了如何使用 Choleski 分解来计算 QR 分解的 R 矩阵 其关系为 R Cholesky 分解 A TA Example gt A matrix c 1 2 3 2 3 5 1 3 2 nrow 3 gt A 1 2 3
  • athena 跳过以下划线开头的键

    我正在尝试与 aws athena 合作 对我们存储在 s3 中的 json 文件进行一些查询 因此 我设法创建了一个简单的模式 一切似乎都很好 直到我注意到我的一些文件没有被考虑在内 文件的键是用户 ID 其中一些以 开头 所有这些都在雅
  • Java - CompletableFutures - 如果出现异常,我如何取消所有期货

    我有一个方法 包括在下面 来返回列表的值CompletableFutures 该方法应该 能够在给定时间后超时 如果有超过n个例外 能够取消所有期货 第一点效果很好 但在超过超时限制后确实失败了 我还需要打电话exectuorService
  • 在这种情况下抛出什么类型的异常?

    我正在编写一个 C 应用程序 它使用自动化来控制另一个程序 当然 该程序必须运行才能使我的程序正常工作 当我的程序查找应用程序但找不到它时 我想抛出异常 当然 现在我可以尝试打开应用程序 或者告诉用户打开它 或者 我应该实现自定义异常 还是
  • 让 is_purchasable 挂钩也适用于 Woocommerce 产品变体

    我创建了 2 个自定义产品字段 可用性 从何时 到何时 因此 如果当前日期在这些设定的可用日期之间 则产品是可购买的 否则 则不可购买 一切都很完美 但只有在我发布具有变化的产品之前 然后 就像产品变体忽略这些自定义可用性字段 值一样 即使
  • 使用实体框架实体作为业务对象?

    我使用 Microsoft 的实体框架 O R 映射器 并使用实体类 映射到数据库对象的生成类 作为业务对象 这个可以吗 请说出你的缺点或优点 在业务层和表示之间进行 WCF 通信的情况下该怎么办 如何将这些对象作为数据成员发送 首先 在撰
  • 如何重置 API 权限 Microsoft Graph

    我正在使用 Microsoft Graph 开发一些东西 起初 只给予一些许可 但我发现这还不够 我添加了更多权限 但似乎不起作用 因为我登录后 授权网出不来 我正在按照步骤操作使用 Microsoft Graph 我正在使用 ADv1 我
  • 如何使用现有的登录 Chrome 用户配置文件正确设置 VS Code 以在 Chrome 中进行调试?

    我有一个用 VS Code 编写的 React 应用程序 为了测试和调试我的工作 我进入终端并输入npm start 这将启动应用程序服务器 并在当前登录用户下正确启动 chrome 该用户已安装 React Devtools 扩展 不过
  • 如何在 CodeIgniter 中上传多个图像并进行验证

    我正在尝试上传多张经过验证的图像 但无法执行此操作 我的查看代码如下 ul li Category Image li ul
  • 除非我强制转换返回变量,否则对静态扩展方法进行存根似乎可以在 Rhino Mocks 中工作。为什么?

    我可以使用 Rhino Mocks 存根静态扩展方法 但如果我将返回值转换为另一种类型 则会收到错误 为什么 using Rhino Mocks public interface INumberGenerator double GetDou
  • Xcode 9 模拟器上的 Google 地图在移动地图时使用超过 100% 的 CPU

    因此 我现在已将我的项目转换为在 Xcode 9 中使用 Swift 4 并开始测试我的应用程序 这是一个大型应用程序 有四个不同的选项卡 几乎所有内容都按预期运行 其中一个选项卡是地图 使用 GoogleMaps 我从来没有遇到过任何问题
  • Gradle Ear 使用当前 WAR 文件名更新 application.xml

    我有一个 java EAR 项目 其中包含一些 WAR Web 应用程序 我正在使用 gradle 构建 EAR 文件 uberApp gt WarA
  • #<#:0x007fe3546d58f0> 的未定义方法 `posts_path'

    我是 Rails 新手 收到此错误 undefined method posts path for lt
  • Outlook - 根据收件人插入文本

    我需要根据收件人自动将文本插入到外发电子邮件中 我在另一个问题 归功于 76Mel 的答案中发现了一些看起来很有希望的代码 看来我可以将代码附加到 ThisOutlookSession 中的 ItemSend Private Sub App
  • Discord.py 无法获取证书

    我是否必须在系统内安装 生成 下载新证书 或者我是否可以以某种方式禁用 python 内的证书 ubuntu 18 python 3 7 discord py latest INFO 2019 03 05 22 58 02 Initiali
  • 如何在角度js中显示依赖选择框选项[关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我有一个表单 我想要两个选择框 以便其中一个选择框的某些选项将根据另一个选择框的当前值显示 隐藏 e g Select
  • 在基本图形的绘图区域之外绘制图例?

    正如标题所说 使用基础图形时如何在绘图区域之外绘制图例 我想过摆弄layout并生成一个仅包含图例的空图 但我对仅使用基本图形设施的方式感兴趣 例如 par mar 在图例的右侧留出一些空间来放置图例 这里有一个例子 plot 1 3 rn
  • 我应该停止使用抽象基类/接口,而是使用 boost::function/std::function 吗?

    我刚刚了解了 std function 的真正含义以及它的用途 我有一个问题 现在我们基本上有了委托 我们应该在何时何地使用抽象基类 以及何时应该实现通过 std function 对象提供给泛型类的多态性 ABC在C 11中是否受到致命打
  • 双重调度和替代方案

    我正在努力寻找更好的方法来处理一些成长if构造来处理不同类型的类 这些类最终是不同值类型 int DateTime 等 的包装器 并带有一些附加状态信息 因此 这些类之间的主要区别在于它们包含的数据类型 虽然它们实现了泛型接口 但它们也需要
  • 如何在浏览器中跨页面保留 Cognito 身份

    我使用开发人员经过身份验证的身份通过客户端浏览器上的 Cognito 进行身份验证 当我的页面加载 或刷新 时 我希望我的应用程序能够记住身份 只要对象没有过期 我认为它会持续大约一个小时 但是 我不知道如何从 Cognito 检索身份 而