帝国CMS网站模板使用第三方登录功能 QQ、微信、微博、百度账号接入指南
时间:2026-08-13 22:24:03 来源:aliz.cn 作者:SKY 阅读:
原创实测|适用帝国 CMS8.0。帝国 CMS 会员模块自带memberconnect外部登录接口目录,可接入 QQ、微信、微博、百度账号快捷登录,减少用户注册步骤,提升会员注册转化率。本文完整讲解平台申请、插件部署、模板调用、排错、安全注意事项。
一、原理说明
帝国 CMS 第三方登录基于 OAuth2.0 协议,统一存放在目录:
/e/memberconnect/。 每一个第三方渠道为独立子目录,后台路径:后台 → 用户 → 外部接口 → 管理外部登录接口。 流程:点击登录按钮 → 跳转第三方授权页面 → 用户授权 → 回调网站获取 code → 获取 openid、昵称、头像 → 无账号自动注册会员,已有账号直接登录。
重要前置条件
- 网站域名必须完成备案;
- HTTPS 站点,第三方平台回调域名必须填写 https 完整地址;
- 微信网页扫码登录需要付费开发者认证,QQ、微博、百度网页应用基础接口免费。
二、各平台申请材料清单
1、QQ 登录(QQ 互联)
官网:https://connect.qq.com/
- 创建网站应用,填写网站信息,提交审核,免费;
- 获取:
APP ID、APP Key; - 回调地址示例:
https://www.aliz.cn/e/memberconnect/?apptype=qq。
坑点:QQ 内置浏览器打开网站登录会授权失败,平台后台回调域名需要多增加一条回调地址。
2、微信 PC 扫码登录(微信开放平台)
官网:https://open.weixin.qq.com/
⚠️注意:这不是公众号后台,是微信开放平台,需要每年 300 元开发者认证费用,不认证无法调用网页扫码登录接口。
- 创建网站应用,提交资质审核;
- 获取:
AppID、AppSecret; - 配置授权回调域名,只填写域名,不要带路径。
区分:
- PC 网页扫码登录:微信开放平台网站应用(收费);
- 微信内部浏览器登录:认证服务号公众号接口; 两者 openid 不互通,需要绑定 UnionID 才能账号统一。
3、新浪微博登录
开放平台:https://open.weibo.com
- 创建网站应用,提交审核,基础登录接口免费;
- 获取
App Key、App Secret; - 设置 OAuth 回调地址,必须和插件回调完全一致。
4、百度账号登录
开放平台:https://openauth.baidu.com
- 开发者实名认证,创建网页应用;
- 获取 API Key、Secret Key; 配置回调地址,完成平台审核即可使用。
三、插件部署安装步骤
- 将第三方登录插件对应文件夹(qq、weixin、weibo、baidu)上传至服务器目录
/e/memberconnect/
目录结构示例
plaintext
/e/memberconnect/qq/
/e/memberconnect/weixin/
/e/memberconnect/weibo/
/e/memberconnect/baidu/
- 访问安装脚本,执行安装 示例:
https://域名/e/memberconnect/qq/install/index.php按照页面提示完成安装,安装完成务必删除 install 安装文件夹,防止安全风险。 - 后台配置参数 后台 → 用户 → 外部接口 → 管理外部登录接口,编辑对应接口,填入平台申请得到的 APPID、密钥、回调地址,保存。
- 测试授权流程 访问地址格式:
域名/e/memberconnect/?apptype=qq修改 apptype 参数:qq / weixin / weibo / baidu,分别对应各个渠道。
四、前台模板调用登录按钮代码
把按钮放到会员登录页面、头部登录弹窗模板内。
html
预览
<!-- QQ登录 -->
<a href="/e/memberconnect/?apptype=qq" target="_self">QQ账号登录</a>
<!-- 微信登录 -->
<a href="/e/memberconnect/?apptype=weixin">微信扫码登录</a>
<!-- 微博登录 -->
<a href="/e/memberconnect/?apptype=weibo">微博账号登录</a>
<!-- 百度登录 -->
<a href="/e/memberconnect/?apptype=baidu">百度账号登录</a>
登录成功跳转配置:插件一般自带返回原页面;如果需要登录后跳转到会员中心,修改插件回调跳转变量。
五、数据库存储说明
第三方登录信息保存在数据表
phome_enewsmemberconnect 字段说明:
apptype:渠道标识 qq/weixin/weibo/baiduopenid:第三方唯一 IDuserid:帝国 CMS 本地会员 IDnickname:第三方昵称avatar:第三方头像地址
新用户授权后,系统自动创建一条会员记录,同时写入本表绑定 openid;老会员再次登录,匹配 openid 直接登录,不用重复注册。
六、高频报错与解决方案
1、redirect_uri 域名与后台配置不一致
错误码:10003
- 平台后台填写的回调域名,和实际跳转回调地址协议、域名、路径必须完全一致;
- HTTPS 站点,平台不能填写 http 回调;
- 不能填写localhost、IP 地址,必须填写备案域名。
2、微信提示 scope 参数错误,无权限
- 网页扫码登录必须使用微信开放平台网站应用,不是公众号;
- 开发者认证 300 元必须完成,未认证无法调用
snsapi_login扫码登录接口。
3、QQ 内置浏览器打开网站,QQ 登录授权失败
QQ 互联平台回调域名,增加回调:
https://域名/e/memberconnect/?apptype=qq,清除浏览器缓存再测试。
4、授权成功,但是不自动注册会员
- 检查
phome_enewsmemberconnect数据表是否存在; - PHP 开启 curl,第三方接口需要 curl 扩展获取 token;
- 服务器防火墙不能拦截外部 https 接口请求。
5、头像不显示
第三方头像为外部 URL,部分服务器拦截外部图片;可以二次开发,授权时把头像下载保存到本地服务器。
七、安全优化注意事项
- 插件安装完成,删除全部
install目录,禁止外部访问安装脚本; - AppSecret 密钥不要输出到前端模板,只存放后台配置;
- 不要完全依赖第三方登录,建议引导用户绑定手机号,第三方接口一旦权限变更,避免用户账号丢失;
- 开启会员注册验证码,防止第三方接口被恶意批量注册;
- 升级帝国 CMS 版本时,备份
memberconnect插件目录,升级后重新上传。
八、两种接入方案对比
表格
| 方案 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| memberconnect 标准插件 | 适配帝国 CMS 会员体系,自动注册、绑定账号,后台统一管理第三方接口 | 微信 PC 扫码需要付费认证 | 大部分网站,推荐首选 |
| 自己手写 OAuth 代码 | 自由度最高,可以自定义字段 | 开发量大,要处理会员注册、cookie 登录逻辑 | 高度定制二次开发项目 |
小结:普通建站优先使用memberconnect插件方案,减少重复开发;微信 PC 扫码有成本,中小型网站可以只开放 QQ、微博、百度登录。
本文配套模板、静态源码可前往艾立兹素材库alisucai.com下载
发表评论
共有0条评论