您好,我使用 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 分钟或重新启动)之后再次出现问题。