【问题标题】:How to verify the authenticated user in a google cloud function?如何在谷歌云功能中验证经过身份验证的用户?
【发布时间】:2019-10-13 03:43:38
【问题描述】:

我正在尝试在我的 Google Cloud 功能中使用 Google 的 Identity Platform。我没有找到任何有关它的信息。我想我应该能够做这样的事情:

exports.helloWorld = (req, res) => {

   var user = getAuthenticatedUser(); //I made up this function and I'm imagining there's some API from google to do this.

   if ( user === undefined ) {
     res.status(403).send('Forbidden!');
   }

   let message = req.query.message || req.body.message || 'Hello ' + user;
  res.status(200).send(message);
};

有人可以指导我找到正确的文档吗?我觉得我在兜圈子,无法确定如何或应该这样做。

谢谢

【问题讨论】:

  • 您使用私有云功能吗?并且您不想仅授权经过身份验证的用户访问它,未在您的项目中注册的用户,任何外部用户。我说的对吗?
  • 我的目标是让用户使用 Google 的身份平台登录(这允许使用电子邮件/密码注册或使用社交登录,如 facebook、google、linkedIn 等)。只有通过该平台(在我的项目中有配置)进行身份验证的用户才能调用我的函数。我希望这可以澄清它。谢谢
  • 简短回答:你不能。但我正在写一篇关于 Cloud Endpoint 以及如何使用 API Key 保护访问的文章。但 Firebase Auth 也有一个条件。你可以自己试试。我标记了这个问题,我会在我的文章发布时更新回复,并且我会用 firebase auth 为你做一个特例(它和 CIP 完全一样)

标签: google-cloud-platform google-cloud-functions google-identity


【解决方案1】:

根据您阐明的用例,我相信您正在寻找的是:

您可以按照Authenticating Cloud Functions 指南(仍处于测试阶段)确保您的函数仅由经过身份验证的用户运行。

简而言之,这两个选项是使用 OAuth 2.0 客户端 ID 的 Google 登录,它会在函数运行之前“自行”进行身份验证(节省您的成本)。另一个是 Firebase,它在 Function 中进行身份验证,这意味着你会为未经身份验证的请求付费。

如果这有帮助,请告诉我:)

【讨论】:

    【解决方案2】:

    作为承诺,here 我的文章。

    您有启动代理和执行身份验证的基础,因为直接它是不可能的。文中使用API​​ Key进行认证,但可以插入firebase identity provider -> 和Cloud Identity Platform是同一个平台。

    希望对您有所帮助!

    【讨论】:

      猜你喜欢
      • 2020-07-31
      • 1970-01-01
      • 2021-12-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-08
      • 2019-11-01
      • 1970-01-01
      相关资源
      最近更新 更多