将Google登录限制为Google Workspace(以前的G Suite)用户



我们的应用程序通过Suabase设置了谷歌登录。我们希望用户能够自己注册,但希望将其限制在使用谷歌工作区的用户,并拥有自定义域而不是Gmail。

浏览了Google 0Auth/云平台文档,找不到任何配置。有没有一种没有自定义逻辑的直接方法?如果我们通过代码进行检查,那么在电子邮件上检查gmail.com是否简单,或者我们可以使用谷歌个人资料中的任何元数据?

你可以试试这个:

创建一个新功能:

CREATE FUNCTION
public.check_user_domain()
RETURNS TRIGGER AS
$$
BEGIN
IF NEW.email LIKE '%@gmail.com' THEN
raise exception 'INCORRECT_DOMAIN';
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql SECURITY DEFINER;

创建一个新的触发器:

CREATE TRIGGER
check_user_domain_trigger
before INSERT ON auth.users
FOR EACH ROW
EXECUTE PROCEDURE
public.check_user_domain();

我在Youtube上录制了一段关于它如何工作的短视频:

https://www.youtube.com/watch?v=C-HoRO7Wrhg

最新更新