您好,我使用AWS AppSync作为后端graphQL db。
我正在使用Cognito来管理登录名,用户和身份验证。
我正在使用IAM管理身份规则和来宾用户。
这是我的消毒代码:
let appSyncConfig = try AWSAppSyncClientConfiguration(appSyncServiceConfig: AWSAppSyncServiceConfig(),
credentialsProvider: AWSMobileClient.default(),
cacheConfiguration: AWSAppSyncCacheConfiguration())
// Initialize the AWS AppSync client
let appSyncClient = try AWSAppSyncClient(appSyncConfig: appSyncConfig)
appSyncClient.apolloClient?.cacheKeyForObject = { $0["id"] }
注意:我使用默认配置,因为所有必需的信息都在
awsconfiguration.json
文件中我正在使用cognito的以下功能来注册用户:
AWSCognitoIdentityUserPool.signUp
并进行电话号码验证,完成后,我使用AWSMobileClient登录:
AWSMobileClient.default().signIn
问题是:
登录后,所有AppSync查询/更改均可正常运行,但不会出现任何问题
在任意时间(通常为5分钟)之后或在重新启动应用程序后
需要授权RETURNS 401(未授权)的任何AppSync查询/变更。
这个问题一直持续到(我认为)下一次刷新访问/ ID令牌(我们的配置1.5个小时),并且此问题在(5分钟或重新启动)之后再次出现。
最佳答案
每当收到未经授权的401消息时,都应提示用户再次登录。如果这种情况经常发生且出乎意料,则说明SDK中可能存在错误。
随时通过https://github.com/awslabs/aws-mobile-appsync-sdk-ios/issues打开问题,以更好地帮助您调试问题。
关于ios - iOS AWS AppSync 401 IAM + Cognito,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59028986/