【问题标题】:How to use devise and aws cognito in rails 3如何在 Rails 3 中使用 devise 和 aws cognito
【发布时间】:2015-09-05 10:48:12
【问题描述】:

我正在使用 rails 3.2 并设计 3.2.3。我正在尝试使用 AWS Cognito Developer Authenticated Identities,但发现自己迷失了如何去做。

我们的用户必须经过身份验证。如果我使用的是 Devise gem,如何在身份池中使用自定义作为身份验证提供程序?

我已经在使用 aws-sdk v1 并安装了 v2 gem 以支持 cognito。

gem 'aws-sdk-resources', '~> 2'

我看到了这个帖子Upload to Amazon S3 and Calling Amazon Cognito Identity from Rails server,但不知道下面的块是否正确。

require 'aws-sdk'
cognito = Aws::CognitoIdentity::Client.new(region:'us-east-1')
resp = cognito.get_open_id_token_for_developer_identity(
           identity_pool_id: 'IDENTITY_POOL_ID', 
           logins: {'MY_PROVIDER_NAME' => 'USER_IDENTIFIER'})

【问题讨论】:

  • 我希望听到使用 AWS 的 Rails 人员的意见。 =)

标签: ruby-on-rails amazon-web-services devise ruby-on-rails-3.2 amazon-cognito


【解决方案1】:

不幸的是,Cognito 没有针对 Ruby 中开发人员身份验证的端到端示例,但是有 Android and iOS examples

通常,流程是创建一个 Cognito Identity 客户端,然后该客户端向您的后端发送请求。后端将与 Cognito 通信以获取/生成 ID 和令牌,并将它们发送回客户端。然后,客户端将使用该 id 和令牌来获取凭据。上面的博文和developer guide 有一些较低级别的细节。

就代码 sn-p 而言,第二行是创建 Cognito 客户端。第三个与 Cognito 通信,其响应将用于将 ID 和令牌发送回客户端。

【讨论】:

    【解决方案2】:

    我最终在我们的 API 中使用了如下代码:

    if user.valid_password?(params[:password])
        #get the cognito token and id
    end
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-28
      相关资源
      最近更新 更多