求助:关于浏览器中JavaScript非验证身份使用权限问题

问题描述

我想用Cognito暂时获得AWS认证来访问一些资源。找了一下相关的信息,发现虽然官方支持JavaScript,但可能因为主要的用例是移动设备,信息并不完整,尽管这样我还是觉得我找到了正确的开始程序,如下:首先:创建Cognito身份池(包括创建身份验证和非验证角色)然后:运行AWS.CognitoIdentityCredentials.get()第一步失败了,是因为CognitoAWS端点没有响应CORSheaders。这对于移动/桌面app不是问题,但对于浏览器是个障碍,怎么解决这个问题啊?基础生成文件附在最后,那里我移除了AWS账户ID。要想使用附件中的样本文件,得在AWS控制台使用默认设置创建新的身份池并且从文件中复制/粘贴region,accountid,identitypoolid和rolearn。我从浏览器控制台获得的信息如下:XMLHttpRequestcannotloadhttps://cognito-identity.eu-west-1.amazonaws.com/.No'Access-Control-Allow-Origin'headerispresentontherequestedresource.Origin'http://inncognito.s3-website-eu-west-1.amazonaws.com'isthereforenotallowedaccess.TheresponsehadHTTPstatuscode404.................附上我的代码:Incognitoerror:Error:NetworkFailure{message:"NetworkFailure",code:"NetworkingError",time:ThuNov27201409:55:26GMT+0100(CentralEuropeanStandardTime),region:"eu-west-1",hostname:"cognito-identity.eu-west-1.amazonaws.com"…}最后附上基础生成文件:<doctypehtml><html><head><title>AWSCognitoUnauthorizedaccessintheBrowser</title><scriptsrc="https://sdk.amazonaws.com/js/aws-sdk-2.0.29.min.js"></script></head><body><scripttype="text/javascript">AWS.config.region='eu-west-1';AWS.config.credentials=newAWS.CognitoIdentityCredentials({AccountId:'123456789012',IdentityPoolId:'eu-west-1:b5dbefe5-c991-4fd1-b17b-aef2e1e5964f',RoleArn:'arn:aws:iam::123456789012:role/Cognito_rudimentaryUnauth_DefaultRole'});AWS.config.credentials.get(function(err){if(!err){console.log("CognitoIdentityId:"+AWS.config.credentials.identityId);}else{console.log('Incognitoerror:',err);}});</script></body></html>有谁遇到类似的问题能帮我解答一下?谢谢!

解决方案

时间: 2025-01-04 00:56:58

求助:关于浏览器中JavaScript非验证身份使用权限问题的相关文章

浏览器中JavaScript执行原理

原文:浏览器中JavaScript执行原理 本章我们讨论javascript在浏览器中是如果工作的,包括:下载.解析.执行的全过程.javascript的这些讨人嫌的地方我们是知道的: i.需要串行下载 ii.需要解析 iii.需要串行执行 而在chrchromium中,js是这样解析的:(其实第一章末尾已经有了) 至于一些步骤的解释,这里就不再复述了,不懂的请戳:浏览器渲染过程 拉至末尾. 简直就是大魔王有木有?心中可有一万只草泥马奔腾而过?为什么在所有的下载线程中: i.css加载不会阻塞页

实例分析浏览器中“JavaScript解析器”的工作原理_javascript技巧

浏览器在读取HTML文件的时候,只有当遇到<script>标签的时候,才会唤醒所谓的"JavaScript解析器"开始工作. JavaScript解析器工作步骤: 1."找一些东西": var. function. 参数:(也被称之为预解析) 备注:如果遇到重名分为以下两种情况: 遇到变量和函数重名了,只留下函数 遇到函数重名了,根据代码的上下文顺序,留下最后一个 2.逐行解读代码. 备注:表达式可以修改预解析的值 JS解析器在执行第一步预解析的时候,会

详解Angular开发中的登陆与身份验证_AngularJS

前言 由于 Angular 是单页应用,会在一开始,就把大部分的资源加载到浏览器中,所以就更需要注意验证的时机,并保证只有通过了验证的用户才能看到对应的界面. 本篇文章中的身份验证,指的是如何确定用户是否已经登陆,并确保在每次与服务器的通信中,都能够满足服务器的验证需求.注意,并不包括对具体是否具有某一个权限的判断. 对于登陆,主要是接受用户的用户名密码输入,提交到服务器进行验证,处理验证响应,在浏览器端构建身份验证数据. 实现身份验证的两种方式 目前,实现身份验证的方法,主要有两个大类: Co

Angular应用中的登录与身份验证示例

Angular 经常会被用到后台和管理工具的开发,这两类都会需要对用户进行鉴权.而鉴权的第一步,就是进行身份验证.由于 Angular 是单页应用,会在一开始,就把大部分的资源加载到浏览器中,所以就更需要注意验证的时机,并保证只有通过了验证的用户才能看到对应的界面. 功能边界 本篇文章中的身份验证,指的是如何确定用户是否已经登录,并确保在每次与服务器的通信中,都能够满足服务器的验证需求.注意,并不包括对具体是否具有某一个权限的判断. 对于登录,主要是接受用户的用户名密码输入,提交到服务器进行验证

浏览器中捕获和分析javascript错误捕获经

对于javascript的出错,例如xxx undefined,SyntaxError等,我们是再熟悉不过的了,本文我们来讨论关于javascript出错如何捕获. 我们team将出现错误的javascript代码取名为badjs,也有一个开源的badjs项目,用于捕获和分析js错误,并提供了一些基础的报表数据分析. 捕获错误一般有两种方式:     使用window.onerror()捕获全局的js错误信息    使用try{...}catch(e){...}包裹需要执行的代码,获取error

在浏览器中获得JavaScript开发工具功能

本文将介绍 Orion,提供一些参考资料和评论来帮助您熟悉这些工具. Eclipse Orion 项目的目标是创建一个基于浏览器的.开源的工具集成平台,一个完全为 Web 而开发的.位于 Web 中的平台. Orion 工具是使用 JavaScript 编写的:它们在浏览器中运行.Orion 基于浏览器的开发 IDE 并不仅在单个浏览器选项卡中运行 - 所有链接都是有效的.可共享的,这为开发人员提供了开发任务的一种真正的 Web 体验. Orion 组件可由其他项目(例如 Firefox Scr

Dom + Javascript 在本机浏览器中对的表格数据进行排序

dom|javascript|浏览器|排序|数据 在本机浏览器中对的表格数据进行排序在Web应用中,数据从服务器端返回到客户端,以表格形式表现出来.如果要对数据集按指定的列排序显示,常规做法都是向服务器发出请求,服务器端程序重新从数据库中取出按指定列排序的数据,返回给客户端,页面重新显示排序后数据. 采用这种方式有如下缺点:1- 响应时间延迟,每次排序都要向服务器端发送请求,等待结果返回,同时增加网络负载.2- 编程复杂,可维护性差,而且客户端和服务器端代码耦合度很高,客户端和服务器端都要处理排

ASP中JavaScript处理复杂表单的生成与验证第1/3页_应用技巧

这里所谓的复杂表单,是指表单中包含多种不同的输入类型,比如下拉列表框.单行文本.多行文本.数值等.在经常需要更换这类表单的场合,需要有一个表单的动态生成程序.本文介绍的正是这样一个系统,它以数据库保存表单定义数据,利用ASP脚本动态生成表单HTML代码以及验证表单输入的脚本. 一.定义数据库表结构 在Web上经常可以看到"每周调查"之类的表单,这就是一种需要经常更新的表单.如果有一个动态生成表单及其验证脚本的程序,可以大大减少制作这些表单的工作量. 在本文的动态表单生成与验证示例中,我

浏览器中url存储的JavaScript实现_基础知识

现在的浏览器里,有一个十分有趣的功能,你可以在不刷新页面的情况下修改浏览器URL;在浏览过程中.你可以将浏览历史储存起来,当你在浏览器点击后退按钮的时候,你可以冲浏览历史上获得回退的信息,这听起来并不复杂,是可以实现的,我们来编写些代码.来看看它是如何工作的. var stateObject = {}; var title = "Wow Title"; var newUrl = "/my/awesome/url"; history.pushState(stateOb