在打字稿中部署身份平台身份验证阻止功能

Identity platform auth blocking function deploy in typescript

我正在尝试编写一个身份验证阻止功能,以防止用户在 google 身份平台中从客户端创建帐户。我用打字稿写了它,但我正在努力部署它

这是一个关于拦截功能的网站https://cloud.google.com/identity-platform/docs/blocking-functions

我的实际函数是这样的

import * as functions from 'firebase-functions';
import * as admin from 'firebase-admin';
import * as gcipCloudFunctions from 'gcip-cloud-functions';
const authClient = new gcipCloudFunctions.Auth();


exports.beforeCreateBlockingFunction = authClient.functions().beforeCreateHandler((user, context) => {
    throw new gcipCloudFunctions.https.HttpsError('invalid-argument', `Unauthorized email "${user.email}"`);
});

  1. 我的方法签名正确吗?

  2. 我正在尝试使用以下命令部署它。我不确定这是否适用于打字稿。这是正确的方法吗?

// Http trigger with Cloud Functions.
// gcloud functions deploy beforeCreateBlockingFunction --runtime nodejs10 --region europe-west1 --trigger-http --allow-unauthenticated

感谢任何帮助。 亲切的问候

我不太确定这是否是您部署代码的方式,但我想强调您可能会将 beforeCreate 函数的名称更改为 beforeCreateBlockingFunction。我以为您可以为该函数选择您喜欢的任何名称,但我意识到该名称应该如您所关注的文档所述。

typescript 的方法声明不正确。函数名称不必是 beforeCreate。您可以按照您的约定命名它。参考 beforeCreateHandler 事件下面的 TS 代码

import * as gcipCloudFunctions from 'gcip-cloud-functions';
const authClient = new gcipCloudFunctions.Auth();

export const beforeRegister = authClient.functions().beforeCreateHandler((user: gcipCloudFunctions.UserRecord, 
          context: gcipCloudFunctions.AuthEventContext) => {
  console.log("User Object: " + JSON.stringify(user));
  console.log("Context Object: " + JSON.stringify(context));
  
  return {
    customClaims: {
      verified: true
    },      
  };
});