使用用户元字段验证用户

时间:2018-05-15 作者:Alan

我有一个工作站点,用户可以使用他们的电子邮件/用户名和密码登录。每个用户都有一个具有唯一代码的usermeta字段。

我必须修改登录页面,以便让他们使用此代码登录应用程序。登录表单应该只有一个“代码”字段。

该站点还充当API。我正在使用WP-RESTAPI和针对WP-API的JWT身份验证进行身份验证。

我必须修改网站登录表单和api端点的身份验证过程。

有没有办法做到这一点?

1 个回复
最合适的回答,由SO网友:Craig Wayne 整理而成

好的,看起来你这里有一些活动部件。。。

要为所有用户的用户元添加新的元字段(唯一代码)

您想通过添加额外字段来修改默认登录表单。。。唯一的代码字段

如果用户在登录表单中提供了相同的唯一代码,则此唯一代码字段应允许用户登录

我假设你已经添加了这个元,如果没有,我建议使用carbon-fields 为了实现这一点

Container::make( \'user_meta\', \'Login Meta\' )
->add_fields( array(
    Field::make( \'text\', \'unique_code\', \'Unique Code\' ),
));
要连接到登录表单,您需要使用login_form 行动

add_action( \'login_form\', function(){
  echo \'<input type="text" name="unique_code" placeholder="Enter your unique code here" />\';
});
使用此唯一代码字段进行身份验证,然后您需要查看authenticate filter 您可以挂接到其中,以基于此发布的“unique\\u code”字段强制对用户进行身份验证

 add_filter( \'authenticate\', function( $user, $username, $password ){

      //do the check for the unique_code field here, 
      //which should be available in the $_POST object


     return $user;
  });
希望这有帮助,干杯

结束

相关推荐

Authentication/API Questions

我们正在尝试使用S2Member来管理我们的WP站点和我们正在启动的Flash程序的成员资格。我们希望在用户登录并保持登录状态时使用S2Member对其进行身份验证。问题:Java层需要知道哪个用户登录到Wordpress(如果有的话),以便它可以将正确的数据返回到flash层。建议的解决方案:Wordpress的cookie也应该包含在Flash到Java的请求中。Java可以使用这些cookie来查询Wordpress DB以获取用户ID。我们需要知道的是:1。是否可以从数据库或文件系统获取带有coo