您好,我正在使用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分钟或重新启动)之后再次出现。
答案 0 :(得分:0)
每当收到未经授权的401时,都应提示用户再次登录。如果这种情况经常发生且出乎意料,则说明SDK中可能存在错误。
随时通过https://github.com/awslabs/aws-mobile-appsync-sdk-ios/issues打开问题,以更好地帮助您调试问题。