問題タブ [amazon-cognito]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-ec2 - Amazon Cognito を LDAP で使用することはできますか?
Amazon Cognito は、OPENID 認証と OATH をサポートしています。代わりに LDAP を使用してユーザーを認証することは可能ですか?
java - Amazon Cognito での開発者認証
私はこれとこのチュートリアルに従おうとしましたが、これがどのように行われるべきかはわかりません. CognitoSyncを使用していますが、同期サービスを開始しようとすると、 「Identity_id と dataset_name が一意ではありません」という例外に直面しています。
Amazon コンソールで IdentityPool を作成し、サーバー サイド クラスのパッケージ名、つまり「com.leversystems.devauth」を DeveloperProvider として指定し、これをサーバー クラスと Android アプリケーションで使用しました。サーバークラスで
map.put("com.leversystems.devauth", "someUniqueId");
Android アプリで
logins.put("com.leversystems.devauth", cognitoProvider.getToken());
これが私のコードです
Java サーバー側
このクラスの Web サービスを作成し、別のクラスBridge クラスでこの関数を呼び出して、トークンと ID を Android アプリケーションに送信します。これは正常に機能しています。Android アプリケーションで Token と IdentityId を取得しています。
Android クラス
MainActivity クラス
BYOIProvider クラス
ワークフロー
- ボタンがクリックされると Android アプリからgetCredentials()が呼び出され、Java サーバー クラスからトークンと ID が取得されます。
- その後、トークンと ID がBYOIProvider クラスに渡されて更新されます。
- syncData()が呼び出され、CognitoCredentialProvider および BYOIProvider 変数が初期化されます。
- CognitoSyncManager は、CognitoCredentialProvider のオブジェクトで初期化されます。
- この後、例外エラーが発生します
列 identity_id と dataset_name が一意ではありません
このコード行で
データセット = client.openOrCreateDataset("MyData");
更新-1 (2014 年 11 月 11 日)
OK、refresh() の戻り文字列をトークン変数に変更しました。これがスタック トレースです。
アップデート 2 (2014 年 11 月 13 日)
追加する
credentialsProvider.refresh();
setLogins()/withLogins() の後
間違ったトークンを試すと、それぞれの例外が発生します。私が提供しているトークンが正しい場合、この例外が発生します
更新-3 (2014 年 11 月 13 日)
わかりましたので、IAM コンソールで新しいロールを作成しました。Update-2の例外が明確になりました。次の問題は最初の問題と同じです。AsyncHttpClient内で受け取っている正確な例外は
更新-4 (2014 年 11 月 14 日)
更新されたコードと StackTrace
コード:
スタックトレース:
ios - AMAZON AWS エンドポイントを SNS トピックにサブスクライブするにはどうすればよいですか?
Amazon SNS と Amazon Cognito サービスを使用して iOS アプリにプッシュ通知を実装しています。Cognito はトークンを正常に保存し、私のアプリは通知を受け取り、すべてがうまく機能していますが、問題があります。
現在、まだ開発中ですが、エンドポイントを SNS トピックに手動で追加して、すべてのサブスクライバーが通知を受け取ることができるようにする必要があります。アップデートを App Store にプッシュすると、何千ものトークンが追加されます。
私は Amazon AWS のドキュメントを調べていましたが、追加の努力なしにそれを実現できるかどうかはわかりませんでした。
私の質問: Amazon サービスのみでエンドポイントをトピックに自動的にサブスクライブすることは可能ですか?
ios - エラーが発生した場合、BFTask (AWS iOS SDK で使用) は task.error = nil を返します。
認証に AWS iOS SDK Cognito サービスを使用しています。私のシミュレータにはネットワーク接続がありません。アプリを実行するときにエラーを処理したいのですが、問題は AWSCognitoCredentialsProvider がエラーを返さないことです。ログに次のメッセージが表示されるので、エラーがあることがわかります。
ID の取得に失敗しました。エラーは [Error Domain=NSURLErrorDomain Code=-1005 "The operation could not be completed. (NSURLErrorDomain error -1005.)" です。
開始前にインターネット接続を確認するための回避策をコーディングできることはわかっていますが、たとえば、間違った AWSDynamoDBModel を使用して DynamoDB の行を削除しようとした場合など、SDK の他の領域でも同じ問題が発生しました。ログにエラーが表示されますが、task.error は nil として返されます。
エラーをチェックする必要がある別の領域はありますか?
Xcode 6 と AWS iOS SDK 2.0.12 を使用しています。問題を再現する唯一の方法は、AWS cognate をプロジェクトに追加し、ネットワークに接続していないときにアプリを実行することです。エラーが表示されるはずのスニペットを次に示しますが、エラーが返されません (task.error を探します)。
-(void)completeLogin:(NSDictionary *)logins {
BFTask *task;
if (self.provider == nil) {
task = [self initializeClients:logins];
}
else {
NSMutableDictionary *merge = [NSMutableDictionary dictionaryWithDictionary:self.provider.logins];
[merge addEntriesFromDictionary:logins];
self.provider.logins = merge;
// Force a refresh of credentials to see if we need to merge
task = [self.provider refresh];
}
[task continueWithBlock:^id(BFTask *task) {
if (self.callback != nil) {
self.callback(task.error); //This is always nil
NSLog(@"callback set to nil in in completeLogin");
self.callback = nil;
}
return nil;
}];
}