私はrails 5
アプリを構築しており、heroku
にデプロイされています。 シングルサインオンを実現するためにAWS congnito
を使用しますが、それを実装する例が十分ではありません。 認証にdevise
を使用しています。今私の目標は、すべてのユーザーをAWS cognito
に入れて、自分のレールアプリから認証することです。Ruby on rails + aws congnitoの例
これは私がAWS congnito with railsで見つけた唯一のリソースです。これを実現するために、いくつかのサンプルアプリケーションやツールやRuby APIドキュメントへのリンクを探しています。
お願いします。バラに基づいて
アップデートは
require 'aws-sdk'
ENV['AWS_ACCESS_KEY_ID'] = 'XXXXXXXXXXXXXXXXX'
ENV['AWS_SECRET_ACCESS_KEY'] = 'XXXX+XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
region_name = 'us-east-1'
endpoint = 'cognito-idp.us-east-1.amazonaws.com'
client = Aws::CognitoIdentityProvider::Client.new(
region: region_name
)
resp = client.admin_create_user({
user_pool_id: "us-east-1_iD7xNHj0x", # required
username: "Test", # required
user_attributes: [
{
name: "email", # required
value: "[email protected]",
},
],
validation_data: [
{
name: "Email", # required
value: "AttributeValueType",
},
],
temporary_password: "PasswordType",
force_alias_creation: false,
message_action: "RESEND", # accepts RESEND, SUPPRESS
desired_delivery_mediums: ["EMAIL"], # accepts SMS, EMAIL
})
エラースタックトレース回答
home/sachin/.rvm/gems/[email protected]/gems/aws-sdk-core-2.6.38/lib/seahorse/client/plugins/raise_response_errors.rb:15:in `call': User does not exist. (Aws::CognitoIdentityProvider::Errors::UserNotFoundException)
from /home/sachin/.rvm/gems/[email protected]/gems/aws-sdk-core-2.6.38/lib/aws-sdk-core/plugins/idempotency_token.rb:18:in `call'
from /home/sachin/.rvm/gems/[email protected]/gems/aws-sdk-core-2.6.38/lib/aws-sdk-core/plugins/param_converter.rb:20:in `call'
from /home/sachin/.rvm/gems/[email protected]/gems/aws-sdk-core-2.6.38/lib/seahorse/client/plugins/response_target.rb:21:in `call'
from /home/sachin/.rvm/gems/[email protected]/gems/aws-sdk-core-2.6.38/lib/seahorse/client/request.rb:70:in `send_request'
from /home/sachin/.rvm/gems/[email protected]/gems/aws-sdk-core-2.6.38/lib/seahorse/client/base.rb:207:in `block (2 levels) in define_operation_methods'
from aws_cognito.rb:20:in `<main>'
アップデート2
resp = client.admin_initiate_auth({
user_pool_id: "us-east-1_uKM", # required
client_id: "3g766413826eul9kre28qne4f", # required
auth_flow: "ADMIN_NO_SRP_AUTH",
auth_parameters: {
"EMAIL" => "[email protected]",
"PASSWORD" => "Ibms#1234"
}
})
を使用して携帯電話番号を確認するための対応する方法を見つけることができます。 –
@Sachin Singh、私はまったく同じことをしているので、分かち合いに感謝します。あなたはDeviseをアンインストールしましたか、それをDeviseの中に入れましたか?あなたがこのコードをどこに残しておいたのですか? – arabisoft
私はdeviseを削除しませんでしたが、ほとんどのコンポーネントの使用を中止し、独自のサインアップ、サインイン、パスワードコントローラの忘れ、ビジネスロジックを作成しました。 –