Notice: Trying to access array offset on value of type bool in /www/wwwroot/weimahe.com/wp-content/advanced-cache.php on line 472

Notice: Trying to access array offset on value of type bool in /www/wwwroot/weimahe.com/wp-content/advanced-cache.php on line 472
WordPress主题开发中如何进行密码验证 - 微码盒
!
也想出现在这里? 联系我们
广告位

WordPress主题开发中如何进行密码验证

平时我们在开发 WordPress 主题的时候一般很少会用到自己写代码去验证用户输入的登录密码是否和数据库中的用户密码相同,但是最近我们在开发我们官网的小程序(已 WordPress 作为后端进行的小程序开发)的时候,y = r \ 1由于我们要实现的是| N & PC 网站和小程序数据同步,所以在用户微信授权登录后需要已经在我们 PC 网站上注册过账号的用户在小程序端绑定我们的 PC 端的账号和密码,这样才能实现 PC 端和小程序端的用户信息+ 8 3 U的同步。

在做账号绑定的时候,我们的逻辑是,小程序获取到微s M ] K i b Y a A信登录用户的 openid 以及头像、姓名、性别、城市等用户信息后,用户在账号绑定页面输入要绑定的用户名和密码,然后小程序将用户填写的用户名、密码、头像、性别、城市等信息发送到后端,后端接收到用户小程序提交过来的信息后,首先到数据库中查询是否有 和传过来的用户名相等的用户 ID,如果有的话,再去比4 \ i I ? 0 ( K P较数据S : i库中的密码和小程序传过来的密码是否一致,如果一致的话,就使用这个用户 ID 更新其他字段# $ ~ m 7 h 8信息,完成绑定。

如果看过 WordPress 数据库中用户信息的朋友应该会发现,数据库中保存的密码字段的值并不是我们可见的字符串形式,而是通过了加密的密码,但是小程序传过来的密码一般就是字符串的形式,比t 1 _ F = l [ {如“12345678”,如果直接拿着两个密码去做对比,结果肯定是不相等的。

幸好,WordPress 自带的有一个函数可以将字符串密码和加密后的密码直接做对比,返回结果为真或假,这个函数就是:wp_check_password("字符串密码","加密后的密码","用户 ID(这F ~ ; H y 4 { & /个是可选的)G ^ 6 \ S")。如果返回真说明密码一致,否则就是不一致。

最后给大家看一下在本项目中我们用到的账号绑| a g % [定的代码:

  1. //用户账户绑定
  2. function user_bind() {
  3. $username = $_K ( B [ u ?POST["username"];
  4. $openid = $_POST- ! 5 D + 6 *["openid" x e z 53;;
  5. $nickname = $_POST["nickname&qA % i g : S 3uot;];
  6. $gender = $_PD Q K q JOST["gender"];
  7. $city = $_POSTP 9 V l u L P y \[&qu= m / i Y Q Got;cit! G j U i b v % .y"];
  8. $password = $_POST["C K ) - 1 : C { Rpassword"];
  9. global $wpdb;
  10. $usernamecheck = $wpdb->get_results("SELECT ID,user_pass FROM wp_users WHERE user_login='$username'");
  11. $user_id = $usernamecheck[0]->ID;
  12. $user_pass = $usernamecheck[0]->user_pass;
  13. $userpassrightM 8 ( i b = wp_check_passworg N E J X | 7 M Kd($passS * D [ zword,$user_pass,$use| k @ 9 rr_id);
  14. if($user_id && $userpassright){
  15. update_, ? f N # I / 0user_meta(m ~ B$user_id,'nickname',$nickname);
  16. update_user_meP 1 w P M B Pta! Y y 7 8 | & ,040;$usA * ] D 4 T ^er_id,'useropenT t Tid',$openid);
  17. update_user_meta($user_id,'usercity',$city);
  18. update_user_meta($user_id,'gender',$gender)@ o a 6;;
  19. return json_encode($user_id);
  20. die();
  21. } el~ 9 ese {
  22. returnV n . json_4 v S U j 7encode(0);
  23. die();
  24. }
  25. }

给TA打赏
共{{data.count}}人
人已打赏
WordPress教程

WordPress标题中横线“-”被转义解决办法

2022-11-11 17:09:25

WordPress教程

WooCommerce 根据网站语言显示不同支付方式

2022-11-11 18:09:18

下载说明

  • 1、微码盒所提供的压缩包若无特别说明,解压密码均为weimahe.com
  • 2、下载后文件若为压缩包格式,请安装7Z软件或者其它压缩软件进行解压;
  • 3、文件比较大的时候,建议使用下载工具进行下载,浏览器下载有时候会自动中断,导致下载错误;
  • 4、资源可能会由于内容问题被和谐,导致下载链接不可用,遇到此问题,请到文章页面进行反馈,以便微码盒及时进行更新;
  • 5、其他下载问题请自行搜索教程,这里不一一讲解。

站长声明

本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有;若为付费资源,请在下载后24小时之内自觉删除;若作商业用途,请到原网站购买;由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索