基本上,我使用开发人员身份验证来验证我的用户。即使这个错误显示:
AWSiOSSDKv2[Verbose]AWSURLResponseSerialization.m行:87 |-[AWSJSONResponseSerializer responseObjectForResponse:originalRequest:currentRequest:data:error:][124;响应主体:[{“u类型”:“InvalidParameterException”,“message”:“请提供有效的公共提供程序”]2015-10-20 17:50:19.251 BusyTime[56549:7365231]awsiosdkv2[error]AWSCredentialsProvider.m行:435 | | u 73-[AWSComgnitoredentialsProvider GetCredentials with Cognito:authenticated:][U block|u invoke | GetCredentials for Identity失败。错误为[Error Domain=com.amazonaws.awscognitoIdentity ErrorDomain Code=7“该操作无法完成。(com.amazonaws.awscognitoIdentity ErrorDomain错误7.)“UserInfo=0x7f9d9342dde0{{uuu type=InvalidParameterException,message=请提供有效的公共提供程序}]
尽管显示了这个错误,但我仍然返回了我的标识符和令牌,并成功调用了一个需要经过身份验证的特权才能调用的lambda方法。我相信这与我的刷新方法有关,但我不太确定。请帮我处理这个错误。
我的凭据提供程序代码:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[AWSLogger defaultLogger].logLevel = AWSLogLevelVerbose;
id<AWSCognitoIdentityProvider> identityProvider = [[BusytimeAuthenticated alloc] initWithRegionType:AWSRegionUSEast1
identityId:nil
identityPoolId:@"EXAMPLEPOOLID"
logins:@{@"login.busytimeapp": [defaults objectForKey:@"username"]}
providerName:@"login.busytimeapp"
];
credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionUSEast1
identityProvider:identityProvider
unauthRoleArn:nil
authRoleArn:nil];
configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1
credentialsProvider:self.credentialsProvider];
AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = configuration;
[[credentialsProvider refresh] continueWithBlock:^id(BFTask *task){
[self testAuth];
return nil;
}];
我的刷新方法:
- (BFTask *)refresh {
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if (![self authenticatedWithProvider]) {
return [super getIdentityId];
}else{
NSDictionary *post = [[NSDictionary alloc] initWithObjectsAndKeys:
[defaults objectForKey:@"username"], @"username",
[defaults objectForKey:@"password"], @"password",
nil];
NSError *error;
NSData *postData = [NSJSONSerialization dataWithJSONObject:post options:0 error:&error];
NSString *postLength = [NSString stringWithFormat:@"%lu", (unsigned long)[postData length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
[request setURL:[NSURL URLWithString:@"SOMEURL"]];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:postData];
NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]];
__block BOOL isLogged = false;
[[session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
NSDictionary *newJSON = [NSJSONSerialization JSONObjectWithData:data
options:0
error:&error];
isLogged = true;
if(!newJSON){
NSLog(@"DID NOT AUTHENTICATE");
}else{
self.identityId = [newJSON objectForKey:@"IdentityId" ];
self.token = [newJSON objectForKey:@"Token" ];
NSLog(@"Result: %@", newJSON);
}
}] resume];
return [super getIdentityId];
}
return [super getIdentityId];
}
这里的问题是,您正在将登录映射中的登录提供者名称作为密钥传递。对于开发人员身份验证的身份,您不能这样做。
相反,您应该在地图中使用Cognito身份提供者名称Cognito-identity.amazonaws.com,就像文档中所说的那样。这将修复您的异常。
我正在尝试在 Swift 中创建一个 iOS 应用程序,该应用程序使用 AWS Lambda 使用以下身份验证服务 - https://github.com/danilop/LambdAuth 它使用适用于 iOS 的 AWS 移动开发工具包与迪纳摩数据库和 Lambda 进行通信 - http://docs.aws.amazon.com/mobile/sdkforios/developergui
今天我为一个新项目安装了laravel 6. x版本。 我的系统中有PHP7.3,因此成功安装了Laravel6。 然后,我运行此命令为VueJS设置身份验证UI。 随着这个命令: 但是当我检查我的登录页面时,它只是一个html骨架。 我通过互联网进行了检查,找到了解决方案,并尝试运行此命令, 但我仍然得到一个丑陋的登录页面没有css和Js文件。我检查了CSS和JS文件,但没有找到解决方案。 任何
使用NetBeans 8.1。 我有一个SpringBoot项目,它使用Thymeleaf作为模板,除了在html页面中使用标记外,一切都正常 <代码> 我有一个本地名为“xmlns:th”的error属性不能序列化为XML 1.0,我可以使用thymeleaf函数,如th:each或th:text,但它们总是显示相同的错误,我在键入时无法提供建议,有没有办法解决这个问题?
我遵循了为keycloak(版本4.8.3)设置自定义身份验证器spi的演练。我几乎只使用从这里得到的示例代码。我只更改了以便能够编译项目并使用部署它。而且它起作用了...我可以在keycloak中配置新的身份验证流,更新浏览器流并设置所需的动作。但是,如果我想在应用程序中使用新的身份验证,我会得到以下消息:。并且在控制台中得到以下输出: 我在github上查找了文件DefaulTauthenti
我正在尝试使用mongo java驱动程序3.4从java访问mongodb。我写了下面的代码来访问mongodb,即使我在连接时输入了错误的凭据,我仍然能够访问我的数据库。 当我试图从ubuntu的终端访问mongo数据库时。它要求认证。
我正在使用React并尝试处理用户的密码更改。我正在发送一个如下的POST请求: ...我得到一个401错误:“未提供身份验证凭据”。 然而,如果我通过邮递员发送完全相同的请求,那么效果很好。 我也在同一个应用程序中执行GET请求以获取用户数据,它也可以毫无问题地工作: 可能是什么问题。。。?