在WordPress用户注册后在Firebase中创建用户

时间:2019-03-29 作者:Mike

我开发了一个使用Firebase的应用程序。用户必须通过Wordpress网站购买订阅才能访问该应用程序。当一个新的Wordpress用户注册时,我也希望在Firebase中创建具有相同凭据(电子邮件/密码)的用户。我已经搜索过了,但没有找到任何能够做到这一点的东西。最好的解决方案是什么。提前感谢您!

2 个回复
SO网友:majick

我对Firebase没有任何专门的知识或经验,因此我将一般回答,因为它可能适用于任何外部应用程序/用户数据库同步。

密码是一个棘手的部分,因为WordPress在将密码放入数据库之前会对密码进行哈希运算,因此出于安全原因,默认情况下不会将纯文本密码存储在任何位置。这意味着您必须:

创建用户后,将用户名和密码发送到应用程序API进行存储。然后,在用户支付订阅费后激活这些用户。然而,这可能意味着你的应用程序中有很多非活动用户(注册后没有购买订阅),你可能需要定期清理(过期)或

创建用户后,将纯文本密码保存到用户meta。通常不建议这样做,但如果“任何人都可以注册”WordPress订阅者帐户,您稍后将使用该帐户成为“真正的”会员,那么这并不是一个真正的安全漏洞,因为免费订阅者角色无论如何都没有额外的特权。然后,当他们进行付费订阅时,您可以将存储的密码与其成员身份一起发送到应用程序API,并确保将其从用户元中删除在这两种情况下,如果用户通过其配置文件页面更改密码,您还需要添加一些代码,以便通过应用程序API将新密码与同步。

SO网友:Derek Held

您的想法是使用两个不同的身份提供者(IdP),Firebase和WordPress,并保持它们的同步。这是解决你问题最困难的办法。您真的只想拥有一个IdP,然后使用federation允许用户使用该IdP登录到另一个平台。

在您的场景中,您希望WordPress成为您的IdP,Firebase使用联邦ID。FirebaseUI 可用于允许应用程序使用联邦ID。它支持SAML和OpenID连接,这是两种不同的方式,您可以通过IdP对用户进行身份验证。现在,您需要一种WordPress能够接收和响应这些请求的方法。您将寻找一个插件,如this one from miniOrange 这允许您将WordPress用作IdP,并通过SAML或OpenID Connect支持联合。

使用FirebaseUI和WordPress插件,您现在可以将所有用户验证到单个帐户,而无需再担心保持两种不同登录方法的同步。

相关推荐

获取所有wp_USERS按元密钥排序

我正在尝试让用户列表按元键排序。我的意思是我已经设置了元键user_last_login. 某些用户没有此元密钥。一些用户拥有它。我想在一个查询中同时获得两个用户,但如果存在元键,则这些用户将排在第一位,其余用户应排在最后。这是我的问题$meta_query_args = array( \'relation\' => \'OR\', // Optional, defaults to \"AND\" array(