Этот ответ касается только iOS, но я предполагаю, что вы сможете сделать что-то подобное на Android.Просто замените «протокол» на «интерфейс»: -)
Чтобы использовать Amplify, вам нужно дать SDK AWSCredentialsProvider
.К счастью, это просто протокол, а не конкретный класс, и реализовать свой собственный несложно:
// MyCredentialsProvider.swift
import AWSCore
import Foundation
class MyCredentialsProvider: NSObject, AWSCredentialsProvider {
func credentials() -> AWSTask<AWSCredentials> {
let credentials = AWSCredentials(accessKey: "AAAAAAAAAAAAAAAAAAA",
secretKey: "zzzzzzzzzzzzzzzzzzz",
sessionKey: nil,
expiration: nil)
return AWSTask(result: credentials)
}
func invalidateCachedTemporaryCredentials() {
// I'm not entirely sure what this method is supposed to do, but it
// seems to be okay to leave it as a no-op.
}
}
Вы можете использовать свой класс следующим образом:
let provider: AWSCredentialsProvider = MyCredentialsProvider()
let serviceConfig = AWSServiceConfiguration(region: .USWest2,
credentialsProvider: provider)
AWSServiceManager.default().defaultServiceConfiguration = serviceConfig
// ...actually use AWS Amplify...
Конечно,Возможно, вы захотите каким-то образом подключить своего провайдера учетных данных к вашей собственной системе аутентификации, но это, по крайней мере, даст вам представление о том, как передать свой собственный ключ доступа и секретный ключ в SDK.