B2主题注册登录流程定制:验证码与第三方登录接入

需求概述

默认注册登录流程较为简单,实际站点往往需要图形验证码、短信验证码以及微信/QQ 第三方登录。本文介绍基于 B2 现有登录体系的二开思路。

一、图形验证码接入

在登录表单增加验证码字段,服务端校验:

Text
add_action('login_form', function () {
    echo '';
});
add_filter('authenticate', function ($user, $username, $password) {
    if (isset($_POST['captcha']) && strtolower($_POST['captcha']) !== strtolower($_SESSION['ji_captcha'])) {
        return new WP_Error('captcha', '验证码错误');
    }
    return $user;
}, 10, 3);

二、短信验证码

建议接入阿里云/腾讯云短信 SDK,流程:发送验证码 → 存储(transient 5 分钟)→ 校验:

Text
set_transient('ji_sms_' . $phone, $code, 300);
if (get_transient('ji_sms_' . $phone) === $input) { /* 通过 */ }

三、第三方登录

推荐使用 WordPress 社交登录插件(如 Nextend Social Login)配合 B2 使用,注意以下几点:

  • 第三方登录回调地址必须是 https,否则微信/QQ 会拒绝。
  • 首次第三方登录自动创建用户,并写入 openid 作为绑定标识。
  • 绑定关系存入 usermeta,避免重复创建账号。

注意事项

  • 验证码与短信接口务必做频率限制,防止被刷。
  • 第三方登录回调需校验 state 参数防 CSRF。

给TA打赏
共{{data.count}}人
人已打赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
签到成功