当前位置: 首页 > 知识库问答 >
问题:

如何验证最终用户认证的令牌(Firebase auth使用)来调用google cloud runendpoint?

印季
2023-03-14

请帮助使用firebase身份验证在云运行中进行最终用户身份验证。

更多详情:

我有一个简单的firebase应用程序与电子邮件/密码firebase认证。当user1(比如test@test.com)使用电子邮件/密码进行身份验证时,我使用firebase.user.getidtoken()为该用户获取Id令牌,并将其提交给firebase函数。

在firebase函数端,我提取用户令牌并将其作为授权提交给google cloud runendpoint:承载+令牌头:

export const getData = functions.https.onRequest(
  async (req, response) => {
    cors(req, response, async () => {
      getToken(req)
        .then(async (token: any) => {
              const options = {
                url: cloud_run.CLOUD_RUN_ENDPOINT,
                headers: {
                  Authorization: `Bearer ${token}`,
                },
              };
           request.get(options, async function (err, resp) {
             //Processing the result
           });
    //etc
    

我需要实现身份平台或Firebase认证(完成),并手动验证他们的凭据。如何手动验证凭据?提交无记名授权令牌后怎么办?

共有1个答案

阎阳
2023-03-14

要实现这一点,您有两个解决方案:

  • 自己检查未经身份验证的云运行服务中的令牌。最近有一篇很棒的谷歌云贴。就我个人而言,我不喜欢这种解决方案,因为如果有攻击,就应该由您的服务来管理这种高流量,并由您付费!
  • 使用代理。(旧的)云endpoint可以实现这一点,我在1年前写了一篇关于这一点的文章(使用API Keys安全定义,但使用Firebase Auth安全定义更改它并使用它!)。它相当古老,因为今年夏天发布了一个新的服务,名为API Gateway,今天它是一个完全由Google管理的云endpoint(今天的功能是相同的,但是API Gateway会发展;不确定云endpoint!)
 类似资料:
  • 最后,我实现了UserDetailsService接口

  • 我的webapp使用amazon cognito托管UI进行登录页面。因此,在成功登录后,cognito将用户重定向到我的webapp,我的webapp收到jwt令牌,其中包含id令牌、访问令牌、过期时间等。现在这个令牌有过期时间,我希望在我的令牌过期之前获得新的id令牌,以保持用户会话继续进行。 我已经在amazon cognito sdk上搜索了下面URL上的预认证场景。https://doc

  • 它工作得很好,但是这让我产生了一个问题:既然我在这个SDK中发送访问令牌,我是否也需要使用以前的基于JWT的令牌验证?因为这个SDK还处理令牌无效/过期的情况,并相应地发送错误代码。我是否遗漏了前一个案子能处理而后一个案子不能处理的东西?

  • *种子为重复性设置为123,我运行的是3.63 R。

  • 问题内容: 在我的Java EE6 REST服务上,我想使用身份验证令牌从移动设备登录,用户将发送其用户名,密码,服务器将发回令牌,该令牌将用于授权用户对给定的进一步请求时间。 我可以这样简单地自己创建令牌吗?(我想我不需要加密此令牌,因为我将使用HTTPS。) 还是有一种更标准的方式来创建我的令牌?也许它存在于API之一 问题答案: 您有效地提出的方案允许客户端无限制地访问您的服务。初始登录后,