【问题标题】:Upload to Amazon S3 and Calling Amazon Cognito Identity from Rails server上传到 Amazon S3 并从 Rails 服务器调用 Amazon Cognito 身份
【发布时间】:2014-12-29 12:41:08
【问题描述】:

我正在尝试按照步骤将文件从 iOS 应用程序上传到 Amazon S3。

根据 AWS iOS SDK 文档,在上传之前,需要对应用程序用户进行身份验证,以便通过我的后端服务器安全访问 AWS 资源: http://docs.aws.amazon.com/mobile/sdkforios/developerguide/cognito-auth.html#providing-creds

从 rails(4.1 版)服务器调用 AWS Cognito Identity GetOpenIdTokenForDeveloperIdentity 服务的正确方法是什么?

此服务不是 aws-sdk gem 的一部分。

【问题讨论】:

    标签: ruby-on-rails amazon-web-services amazon-s3 amazon-cognito aws-sdk


    【解决方案1】:

    仅通过 v2 Ruby SDK 支持 Cognito。

    这是使用 v2 SDK 的 GetOpenIdTokenForDeveloperIdentity 的最小示例:

    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'})
    
    • IDENTITY_POOL_ID - 您的泳池 ID
    • MY_PROVIDER_NAME - 您在身份池中配置的提供商名称
    • USER_IDENTIFIER - 此用户在您的系统中的唯一标识符

    响应(成功时)将包含您的用户的 identity_idtoken,可以将其传递回您的移动应用程序。

    【讨论】:

    • 感谢您的回答,目前尚不清楚如何使用cognito身份模块。能详细点吗?
    • 你能详细说明你在找什么吗?您是否正在寻找有关使用 Ruby SDK 或特别是 Cognito 的介绍?
    • 谢谢 Bob,我的问题是当前的 aws-sdk gem(版本 2.0.6.pre)不包含 Aws::CognitoIdentity::Client 的实现
    • @asafam 请确保您已实际安装并使用正确的版本,因为我上面包含的代码是针对 v2 AWS sdk gem 的当前版本。
    • 我按照 ruby​​ aws gem 页面上的安装说明进行操作。我的日志表明我正在使用: Using aws-sdk-core 2.0.6 Using aws-sdk-v1 1.57.0 我想这与另一个问题有关。谢谢。
    猜你喜欢
    • 2017-07-07
    • 2016-05-26
    • 2013-05-17
    • 2016-05-10
    • 2017-06-08
    • 2010-11-06
    • 1970-01-01
    • 2014-07-22
    • 1970-01-01
    相关资源
    最近更新 更多