我有从服务器生成的凭证以及令牌。我使用了 AWSStaticCredentialsProvider,而我需要传递令牌进行身份验证。
引用了许多链接,但除了自定义实现凭据提供程序的想法之外没有其他帮助。任何代码都会有所帮助。
我有从服务器生成的凭证以及令牌。我使用了 AWSStaticCredentialsProvider,而我需要传递令牌进行身份验证。
引用了许多链接,但除了自定义实现凭据提供程序的想法之外没有其他帮助。任何代码都会有所帮助。
1.创建一个继承自NSObject的新类;
2.确保它实现了AWSCredentialsProvider;
3.声明Access、Secret、Token等所需属性和初始化方法;
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
.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;
}
请记住临时凭证过期。一旦他们这样做,所有后续请求都会因您实施凭证提供程序而失败。凭据提供程序需要能够- refresh
在凭据过期时响应并刷新凭据。实施- refresh
完全取决于您的后端服务结构和要求。
您应该查看AWSWebIdentityCredentialsProvider和AWSCognitoCredentialsProvider的实施作为示例。此外,请考虑使用,AWSCognitoCredentialsProvider
因为它是向客户端应用程序提供凭据的更简单方法。