您好,我使用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/

10-11 06:53