【发布时间】:2020-03-20 13:50:36
【问题描述】:
您好,我使用 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 分钟或重新启动)后问题再次出现。
【问题讨论】:
标签: ios amazon-cognito amazon-iam aws-appsync aws-appsync-ios