如何添加用户并使用 google oauth 登录

how to add user and login with google oauth

我试图在超集中添加 google oauth2 作为我的登录方法。用户无法自行注册,系统管理员必须根据 permissions/role.

为用户提供访问权限

当匿名用户登录时,系统必须检查用户电子邮件是否存在以及他应用了什么角色并显示用户配置文件

我已经在超集中链接了 google oauth2,我可以在登录 google 按钮中单击登录弹出窗口并输入 google 帐户的电子邮件和密码。但是当登录完成后,提示用户未被授权。

Login Page

After Login, with console error (page stays loading...)

问题是我如何将 google 用户关联到超集用户,或通过此 google oauth2 方法注册用户与相应的角色?

您可以做的一件事是设置 Flask App Builder 的 AUTH_USER_REGISTRATION = TrueAUTH_USER_REGISTRATION_ROLE = "some_default_role".

然后,如果您想更改注册流程,我建议您设置自己的 SecurityManager 并覆盖 BaseSecurityManager.auth_user_oauth。我会复制该方法的源代码并对其进行更改。

如果 FAB 为此目的在 BaseSecurityManager 中有一个 pre_registration 挂钩,我会很棒。也许它可以接收 FAB 计划创建的 User 对象(在创建之前)并且可以 return 角色列表,或者 None 如果我们想中止注册过程。