我现在刚刚进入 Cognito。AWS 设置相当简单直接。
我们有各种各样的应用程序、网络应用程序和服务,我们希望它们能够使用 Cognito 服务。我有使用 Auth0 进行类似设置的经验,但由于我们一直在利用许多 Amazon Web Services,因此使用 Cognito 也确实很有意义。
我所到之处,每个指南最终都引用了 Amplify 客户端库和 cli。我们有现有的应用程序和服务,真的不想改变工具或导入任何不必要的东西来增加膨胀和复杂性。有没有办法在没有 Amplify 库的情况下使用 Cognito 服务?是否有用于与 Cognito 服务、身份验证和授权流程交互的轻量级仅 Cognito 客户端库?
感谢您的帮助
我将我的 AWS Amplify 应用程序链接到一个新的 React Gatsby GitHub 存储库以进行持续部署。该应用程序在本地编译良好,但我在 AWS 构建期间在“前端”中遇到错误,说 amplify.sh 文件在 npm run 构建行中“被杀死”,然后是“检测到非零退出代码”错误。下面是错误截图的链接:
以下是我在 AWS 中的 amplify.yml 文件的内容:
version: 1
frontend:
phases:
preBuild:
commands:
- npm ci
build:
commands:
- npm run build
artifacts:
baseDirectory: public
files:
- '**/*'
cache:
paths:
- node_modules/**/*Run Code Online (Sandbox Code Playgroud)
我是否需要编辑 amplify.yml 文件,或者向 package-lock 或 gatsby-node 文件添加一些内容?
我想创建一个 Nuxt.js 中间件来检查用户是否经过身份验证。在应用程序内部导航时效果很好。但是当我刷新页面时,我总是得到:
[错误] 43:48.846 foo - 服务器 { 15:43:48
错误:“未通过身份验证”
}
错误 [错误] 43:48.844 AuthError - 15:43:48
错误:Amplify 配置不正确。
配置对象缺少必需的身份验证属性。
通过“amplify add auth”添加身份验证后,您是否运行了“amplify push”?
有关更多信息,请参阅 https://aws-amplify.github.io/docs/js/authentication#amplify-project-setup
AWS Amplify 在此处有一篇关于 SSR 支持的文章:AWS Amplify 的 SSR 支持 在 那里您可以找到启用 SSR 和检查用户身份验证的代码
在 Nuxt.js 文档中,您可以找到:
在通用模式下,中间件将在服务器端(对 Nuxt 应用程序的第一个请求,例如直接访问应用程序或刷新页面时)和客户端导航到进一步路由时调用一次。
好的,所以我在我的 amplify 插件中启用了 SSR 并调整了中间件:
if (process.server) {
const { Auth } = withSSRContext(context.req)
try {
await Auth.currentAuthenticatedUser()
} catch (error) {
return context.redirect(302, '/auth/signin')
}
Run Code Online (Sandbox Code Playgroud)
}
当我刷新页面时,代码会被执行,但我总是收到“未验证”错误和“Amplify 未正确配置”。另一方面,在客户端(登录、注册等)一切正常
有什么想法吗?我找不到解决办法...
亲切的问候
我希望能够在像这样的 cypress 测试中将测试输入“键入”到 AWS Amplify Authenticator 组件(amplify-authenticator)中:
describe('My Authenticator Test', () => {
it('should let me type in the username field', () => {
cy.visit('http://localhost:8100/');
cy.get('amplify-authenticator')
.find('input#username')
.type('sample@example.com');
}
}
Run Code Online (Sandbox Code Playgroud)
但是,即使我可以检查元素并看到它:
Cypress 测试无法找到输入字段。
如何使用赛普拉斯访问“用户名”字段(以及其他类似字段)?
嗨,我正在使用一个检索图像 URL 的 API。然后我尝试将该 URL 传递到一个标签中,如下所示:
<img class="img-fluid" src={this.state.representatives[i].pic}/>
Run Code Online (Sandbox Code Playgroud)
在当地我遇到了
但是当我尝试在 AWS Amplify 上使用该应用程序时,我遇到了:
我尝试将 URL 硬编码到应用程序中,但它返回相同的错误。我真的很困惑从这里去哪里。
例如,从 Mark Warner 的 API 中提取的图像 URL 是http://bioguide.congress.gov/bioguide/photo/W/W000805.jpg
我知道我不会在本地加载这个 URL 时弄乱它。我在某处犯了一个简单的错误吗?
我一直在尝试与 AppSync/GraphQL 进行交互:
邮政:
mutation MyMutation {
updateAsset(input: {
id: "b34d3aa3-fbc4-48b5-acba-xxxxxxxxxxx",
owner: "51b691a5-d088-4ac0-9f46-xxxxxxxxxxxx",
description: "AppSync"
}) {
id
owner
description
}
}
Run Code Online (Sandbox Code Playgroud)
回复:
{
"data": {
"updateAsset": {
"id": "b34d3aa3-fbc4-48b5-acba-xxxxxxxxxx",
"owner": "51b691a5-d088-4ac0-9f46-xxxxxxxxxxx",
"description": "Edit Edit from AppSync"
}
}
Run Code Online (Sandbox Code Playgroud)
每次我发送查询时,DynamoDB 中的版本都会自动递增。但描述仍与最初设定的相同。
架构上的身份验证规则 -
@auth(
rules: [
{ allow: public, provider: apiKey, operations: [create, update, read] },
{ allow: private, provider: userPools, operations: [read, create, update, delete] } …Run Code Online (Sandbox Code Playgroud) amplify ×7
reactjs ×3
amazon-s3 ×1
angular ×1
aws-amplify ×1
aws-appsync ×1
cypress ×1
ecmascript-6 ×1
gatsby ×1
graphql ×1
javascript ×1
nuxt.js ×1
testing ×1