Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何实现自定义AWSCredentialsProvider_Ios_Amazon Web Services_Token_Aws Sdk - Fatal编程技术网

Ios 如何实现自定义AWSCredentialsProvider

Ios 如何实现自定义AWSCredentialsProvider,ios,amazon-web-services,token,aws-sdk,Ios,Amazon Web Services,Token,Aws Sdk,我有从服务器生成的凭据以及令牌。我使用了AWSStaticCredentialsProvider,但我需要传递令牌进行身份验证 参考了许多链接,但除了自定义实现凭据提供程序的想法之外,没有其他帮助。任何代码都会有所帮助 参考: [1.创建从NSObject继承的新类; 2.确保它实现了AWSCredentialsProvider; 3.声明所需的属性,如访问、秘密和令牌以及初始化器方法; 4.然后在实现文件中实现声明的方法 代码段: .h文件 @interface CustomCredentia

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

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

参考:
[

1.创建从NSObject继承的新类;
2.确保它实现了AWSCredentialsProvider;
3.声明所需的属性,如访问、秘密和令牌以及初始化器方法;
4.然后在实现文件中实现声明的方法

代码段:

.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

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

您应该看一下实现的例子,也可以考虑使用<代码> AWSCognitoCredentialsProvider <代码>,因为这是向客户应用程序提供凭据的一种更简单的方法。

+ (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;
}