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