如何使用Firebase的电子邮件和密码身份验证方法与AWS连接以使Fine Uploader S3正常工作?

7 authentication amazon-s3 amazon-web-services fine-uploader amazon-cognito

我决定将Fine Uploader用于我当前的AngularJS项目(它连接到Firebase上的托管),因为它在内置的上传器中有许多核心功能,但是我无法理解如何使用Firebase的电子邮件和密码与AWS(Amazon Web Services)通信的身份验证方法,允许我的用户使用Fine Uploader S3上传内容.基于Fine Uploader博客文章上传,没有任何服务器代码,工作流程如下:

  1. 在身份提供商(如Google)的帮助下对您的用户进行身份验证
  2. 使用ID提供程序中的临时令牌从AWS获取临时访问密钥
  3. 将密钥传递给Fine Uploader S3
  4. 您的用户现在可以上传到您的S3存储桶

问题是我不会使用OAuth 2.0 (谷歌,Facebook或亚马逊用来提供用户身份)来允许我的用户登录我的应用并上传内容.相反,我将使用Firebase的电子邮件和密码身份验证.

那么我如何让Firebase的电子邮件和密码验证方法创建一个临时令牌来从AWS获取临时访问密钥并将这些密钥传递给Fine Uploader S3以允许我的用户将内容上传到S3?

Kat*_*ato 0

每个 OAuth 提供程序都有稍微独特的处理方式,因此 Firebase 身份验证令牌中可用的属性因提供程序而略有不同。例如,当使用 Facebook 时,Facebook 身份验证令牌存储facebook.accessToken在返回的用户对象中:

var ref = new Firebase(URL);
ref.authWithOAuthPopup("facebook", function(error, authData) {
  if (authData) {
    // the access token for Facebook
    console.log(authData.facebook.accessToken);
  }
}, {
  scope: "email" // the permissions requested
});
Run Code Online (Sandbox Code Playgroud)

所有这些内容都包含在Web 指南的用户身份验证部分中。