Можно ли использовать AWS Amplify без использования Amazon Cognito? - PullRequest
0 голосов
/ 31 января 2019

У меня есть приложения для Android и iOS.Мне нужно разрешить им загружать и выгружать ресурсы на S3, а иногда я хочу отправлять данные на мобильные устройства без необходимости использовать Amazon Cognito, поскольку это требует больших денег.У меня есть секретные ключи и ключи доступа, и я хочу, чтобы мобильные пользователи использовали эти ключи вместо того, чтобы использовать Amazon Cognito.

Так можно ли использовать AWS Amplify без Amazon Cognito?

Ответы [ 2 ]

0 голосов
/ 14 мая 2019

Этот ответ касается только 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.

0 голосов
/ 04 февраля 2019

Да, это возможно.Для использования AWS Amplify вам не требуется аутентификация пользователя.

...