如果我有登录用户的访问令牌,如何使用 AWS Amplify GraphQL API?
Posted
技术标签:
【中文标题】如果我有登录用户的访问令牌,如何使用 AWS Amplify GraphQL API?【英文标题】:How to use AWS Amplify GraphQL APIs if I have access token of a logged in user? 【发布时间】:2021-10-15 09:15:06 【问题描述】:我对 Amplify 库完全陌生。我已经使用 Cognito 用户池登录了我的用户。我有所需的访问令牌(jwt 令牌)。我应该如何使用此访问令牌使用适用于 GraphQL 的 AWS Amplify API?
Amplify.API.query
Amplify.API.mutate
阅读文档,在我看来,我必须使用 Amplify Auth 登录用户才能使用这些 API。换句话说,我如何让 Amplify 知道我拥有经过身份验证的用户的访问令牌并允许我使用 GrapQL API?还是只能通过 Amplify Auth 进行身份验证?
【问题讨论】:
【参考方案1】:Amplify 会立即为您处理。
在您进行身份验证后,框架会为您处理 JWT。如果您想通过 Cognito + Amplify 看到足够简单的身份验证实现,我向您推荐这个代码库:
https://www.amplifyauth.dev https://github.com/dabit3/amplify-auth-demo
配置 Amplify Auth 并使用 Amplify CLI 创建 API 后,系统会提示您是要创建经过身份验证还是未经身份验证的 API。
在客户端,您只需使用 Amplify JS 库调用 API,系统将为您处理已通过身份验证或未通过身份验证的事实。
【讨论】:
您好,感谢您的回复。实际上,我有与身份验证分开的逻辑。我已经通过单独的自定义逻辑(不是通过 Amplify)对用户进行了身份验证。我有 jwt 令牌。现在,我如何让 amplify 知道我已通过身份验证并让我使用它的 API 进行 appsync 好的,如果您使用 Cognito,您只需将用户池与 AppSync API 连接起来。在客户端,您必须告诉框架如何进行身份验证:docs.amplify.aws/lib/graphqlapi/authz/q/platform/js以上是关于如果我有登录用户的访问令牌,如何使用 AWS Amplify GraphQL API?的主要内容,如果未能解决你的问题,请参考以下文章
无效的登录令牌。缺少必需的声明:访问 AWS Cognito AssumeRoleWithWebIdentity 时的 aud
Swift - AWS Cognito 使用 Amplify - 如何在 swift 登录后获取令牌?
如何配置 AWS 用户 cognito 身份验证流程以在 Java sdk 后端生成身份令牌、访问令牌?
AWS Cognito 中的“访问令牌不包含 openid 范围”