【问题标题】:How to implement custom AWSCredentialsProvider如何实施自定义 AWSCredentialsProvider
【发布时间】:2015-02-08 16:58:45
【问题描述】:

我有从服务器生成的凭证以及令牌。我使用 AWSStaticCredentialsProvider 而我需要传递令牌进行身份验证。

引用了许多链接,但除了自定义实现凭据提供程序的想法之外没有其他帮助。任何代码都会有所帮助。

参考: [AWSWebIdentityCredentialsProvider How to get parameters values?

【问题讨论】:

    标签: ios amazon-web-services token aws-sdk


    【解决方案1】:

    1.创建一个继承自NSObject的新类;
    2.确保它实现了 AWSCredentialsProvider;
    3.声明Access、Secret、Token等所需属性及初始化方法;
    4.然后在实现文件中实现声明的方法。

    代码sn-p:

    .h 文件

    @interface CustomCredentialsProvider : NSObject<AWSCredentialsProvider>
    @property (nonatomic, readonly) NSString *accessKey;
    @property (nonatomic, readonly) NSString *secretKey;
    @property (nonatomic, readonly) NSString *sessionKey;
    
    + (instancetype)credentialsWithAccessKey:(NSString *)accessKey
                                   secretKey:(NSString *)secretKey sessionKey:(NSString*)sessionKey;
    - (instancetype)initWithAccessKey:(NSString *)accessKey
                            secretKey:(NSString *)secretKey sessionKey:(NSString*)sessionKey;
    @end
    

    .m 文件

    + (instancetype)credentialsWithAccessKey:(NSString *)accessKey
                                   secretKey:(NSString *)secretKey sessionKey:(NSString*)sessionKey
    {
        CustomCredentialsProvider *credentials = [[CustomCredentialsProvider alloc]initWithAccessKey:accessKey secretKey:secretKey sessionKey:sessionKey];
        return credentials;
    
    }
    
    - (instancetype)initWithAccessKey:(NSString *)accessKey
                            secretKey:(NSString *)secretKey sessionKey:(NSString*)sessionKey
    {
        if (self = [super init]) {
            _accessKey = accessKey;
            _secretKey = secretKey;
            _sessionKey = sessionKey;
        }
        return self;
    }
    

    【讨论】:

      【解决方案2】:

      请记住临时凭据已过期。一旦他们这样做,所有后续请求都会因您实施凭据提供程序而失败。凭据提供程序需要能够响应 - refresh 并在凭据过期时刷新凭据。 - refresh 的实现完全取决于您的后端服务结构和要求。

      您应该看看AWSWebIdentityCredentialsProviderAWSCognitoCredentialsProvider 的实现作为示例。此外,请考虑使用 AWSCognitoCredentialsProvider,因为它是向客户端应用程序提供凭据的更简单方法。

      【讨论】:

        猜你喜欢
        • 2022-08-02
        • 2018-12-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多