来自浏览器的Google Cloud Pub / Sub发布 - Auth如何工作?

时间:2015-03-16 21:46:34

标签: google-cloud-pubsub

我需要直接从浏览器使用Google Cloud Pub / Sub API(类似于GA脚本)。我想知道如何在不需要通过后端服务器的情况下处理Auth。

我想直接从浏览器调用Cloud Pub / Sub API。我试过,它说我需要先验证,我的问题是如何保护验证令牌。

是否有任何可用的JavaScript库,我可以在浏览器(而不是后端)中使用它来调用Google Pub / Sub API。

提前致谢

2 个答案:

答案 0 :(得分:3)

Javascript中用于授权和向Google API发出授权请求的一般方法显示在https://developers.google.com/api-client-library/javascript/samples/samples#AuthorizingandMakingAuthorizedRequests - 它不是特定于Cloud Pubsub API,但它适用于所有 Google蜜蜂。同样,https://developers.google.com/api-client-library/javascript/start/start-js用于访问Google API的一般Javascript。

答案 1 :(得分:0)

这是一个很老的话题,但是我最近一直在评估是否有可能。简单的答案是-是的,可以直接从浏览器应用程序将消息发送到PubSub主题中。解决方法如下:

  • 您需要使用 fetch()
  • 通过REST API发布消息
  • 您需要发送授权标头
  • 授权标头必须包含用于识别用户的oAuth2.0令牌;它可以是匿名身份验证的用户,也可以是完全身份验证的用户,例如使用firebase身份验证库。

要使以上三个功能都能正常工作,您必须编写很多代码。它根本不实用,在架构上也不好。除非您绝对需要那样做,否则不要再这样做了(我看不出为什么),这种简化但涉及更多组件的解决方案如下:

    通过Firebase
  • 验证用户浏览器-可以是匿名用户也可以是完整用户
  • 使用所需的有效负载对您的云/ firebase 功能进行简单的 GET POST
  • 在功能验证中,传入的请求将具有经过身份验证的用户令牌
  • 如果验证通过,则发布消息到主题

这样,它仍然是安全的,更易于维护的并且清楚地分成功能组件。 更少代码,更多的基础架构。