1

您好,我使用 AWS AppSync 作为后端 graphQL 数据库。我正在使用 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 分钟)或重新启动应用程序后

任何需要授权的 AppSync 查询/突变返回 401(未授权)。

这个问题一直持续到(我认为)下一次刷新访问/id 令牌时(我们的配置 1.5 小时),并且在(5 分钟或重新启动)之后再次出现问题。

4

1 回答 1

0

每当您收到未经授权的 401 时,您应该提示用户再次登录。如果这种情况非常频繁且意外地发生,则 SDK 中可能存在错误。

随时通过https://github.com/awslabs/aws-mobile-appsync-sdk-ios/issues打开问题,以更好地帮助调试您的问题。

于 2019-12-29T18:37:09.860 回答