设定
我正在开发一个使用AWS Amplify作为后端的离子应用程序。我们希望使用以下两种身份验证类型“AMAZON_COGNITO_USER_POOLS”和“API_KEY”的服务:
- 放大API以与API网关交互
- 带有代码生成的GraphQL API
对于身份验证,我们正在使用带有Cognito托管UI的Ionic Auth Connect。根据文档,我们能够使用检索ID、刷新和访问令牌的功能进行登录和注册。
问题
此设置的问题是,Amplify无法识别登录用户,并且在尝试与Amplify API和GraphQL交互时,我们没有收到当前用户错误。
检查放大和授权连接文档,我发现没有明确的方法来手动设置当前用户。
我尝试使用Amplify.configure和auth拦截器手动设置令牌,但没有成功,因为Amplify在SDK中有一些验证逻辑,会阻止请求。
是否有一种方法可以设置用于放大的用户会话,而无需手动构建API和GraphQL调用?
1条答案
按热度按时间uyto3xhc1#
假设您对身份验证类使用以下设置:From official docs
您可以使用
amazon-cognito-identity-js
并手动设置CognitoUserSession
,如下所示:安装amazon-cognito-identity-js
创建将处理设置用户会话的新方法:
要使Cognito会话与auth connect的会话保持同步,您需要在
onAuthChange
内调用setAmplifyUser
若要确认会话已设置,可以尝试调用以下方法:
有关使用多个身份验证模式的其他注意事项:在AppModule构造函数内部,您可以订阅
onAuthChange
并根据身份验证状态切换aws_appsync_authenticationType。