返回列表 发帖
查看: 1600|回复: 9

[开发教程] 使用Discuz! X5的RESTful API实现登录、注册、获取版块列表、帖子列表、帖子详情页

53

回帖

4

粉丝

0

关注

应用开发者

贡献
2 点
金币
94 个
发表于 2025-9-24 15:18:10 |河南| 查看全部 |阅读模式
本帖最后由 有爱设计 于 2025-9-24 19:10 编辑

1. 准备工作
1、进入你的网站后台--站长--RESTful 接口--应用列表
新增应用-填写应用名称,提交后会得到以下信息,保存好你的appidsecret
截图202509241514263536.jpg
2、进入你的网站后台--站长--RESTful 接口--接口列表
打开https://gitee.com/Discuz/discuz-restful-api,下载这个git文件,
点击导入接口。选择本地安装-上传文件,在下面的选择文件中选择已下载的文件“discuz_restful_official_trial.xml”,点击提交。这样你的接口列表中就会有默认的一些接口了,接下来介绍怎么通过接口实现登录。
2. 开始开发
接下来的示例以php作为演示,如果有其他的语言,可以参考此实例;
1、使用appidsecret、接口urlhttp://dz.local:8080/api/restful/?token)获取token,获取函数参考此实例中的_request函数

截图202509241514388986.jpg
2、获取到的token需要自己存储,用于请求下一个接口时使用;
截图202509241514485600.jpg
其余的接口请求可参考具体的附件
游客,如果您要查看本帖隐藏内容请回复
参考文件中的逻辑关系梳理

1. 初始化和 Token 获取
程序首先创建 request 类实例并调用 getToken() 方法。
getToken() 方法检查 session 中是否已有有效的 token(有效期 2 小时)。
如果没有有效 token 或已过期,则通过 _request('/token', []) 请求新的 token
获取到的 token 会被保存到 session 中供后续使用。
2. 主菜单显示
成功获取 token 后,调用 showMenu() 方法显示操作界面。
界面包括:
Token 信息展示(token 值、获取时间、过期时间)
用户登录状态检查
根据登录状态显示登录表单或用户信息
API 测试菜单(仅在登录后可用)
3. 用户认证流程
登录流程
用户填写用户名和密码提交登录请求
如果需要验证码(由 getSeccode() 提供),用户还需输入验证码
调用 login() 方法发送登录请求到 /member/login
登录成功后将用户信息保存到 session,并清除验证码状态
注册流程
用户点击注册链接触发 showRegisterForm() 方法
该方法先调用 /member/registerInfo 获取注册所需字段信息
显示包含动态字段的注册表单(用户名、密码、邮箱、验证码等)
用户提交后,register() 方法收集表单数据并调用 /member/register 完成注册
4. 验证码处理
登录验证码:通过 getSeccode() 方法获取,调用 /seccheck/seccode 接口
注册验证码:通过 getRegisterSeccode() 方法获取,同样调用 /seccheck/seccode 接口
验证码图片以 base64 编码形式返回并在前端显示
5. API 接口测试
登录后可以测试以下接口:
获取版块列表 (getForumlist()):调用 /index/forumlist 接口
获取帖子列表 (getForumDisplay()):调用 /forumdisplay 接口
获取帖子详情 (getViewthread()):调用 /viewthread 接口
所有 API 调用都通过 _request() 方法发送,该方法负责:
生成请求头(appidnoncetimestampsignature
添加 token(如果存在)
发送 HTTP POST 请求
返回解码后的 JSON 响应
6. 会话管理
程序使用 PHP session 存储以下信息:
token 及其获取时间
用户登录信息及登录时间
注册字段信息
验证码状态和 hash
7. 退出和清理
logout() 方法清除所有 session 数据并重定向到首页
"清除 Token" 按钮可手动清除 token 和相关 session 数据

回复

使用道具 举报

448

回帖

6

粉丝

1

关注

管理员

贡献
23 点
金币
44 个
产品版本
X5.0+
发表于 2025-9-24 15:19:38 |北京| 查看全部
沙发
回复

使用道具 举报

3291

回帖

9

粉丝

2

关注

应用开发者

Discuz! 运维

贡献
219 点
金币
685 个
QQ
发表于 2025-9-24 15:29:33 |江苏| 查看全部
板凳
回复

使用道具 举报

286

回帖

4

粉丝

0

关注

应用开发者

贡献
22 点
金币
321 个
发表于 2025-9-24 16:11:39 |江苏| 查看全部
顶起
回复

使用道具 举报

6515

回帖

9

粉丝

10

关注

应用开发者

贡献
648 点
金币
1450 个
QQ
发表于 2025-9-24 17:09:44 |浙江| 查看全部
站位必须靠前
回复 1

使用道具 举报

2

回帖

3

粉丝

0

关注

应用开发者

贡献
0 点
金币
50 个
发表于 2025-9-25 10:02:42 |山东| 查看全部
顶顶顶顶顶
回复

使用道具 举报

35

回帖

3

粉丝

0

关注

渐入佳境

贡献
0 点
金币
34 个
发表于 2025-10-30 10:35:12 |泰国| 查看全部
Thanks for your article 😊
回复

使用道具 举报

17

回帖

0

粉丝

0

关注

初学乍练

贡献
0 点
金币
5 个
QQ
发表于 2025-10-30 12:18:59 |广东| 查看全部
X5版来了!围观、学习、交流...
回复

使用道具 举报

1

回帖

0

粉丝

0

关注

初学乍练

贡献
0 点
金币
5 个
产品版本
X5.0+
发表于 2025-11-18 14:50:26 |广东| 查看全部
本帖最后由 13694846652 于 2025-11-18 15:10 编辑

怎么操作用户个人信息,以及修改用户状态呢
回复

使用道具 举报

45

回帖

2

粉丝

3

关注

渐入佳境

贡献
0 点
金币
15 个
发表于 昨天 17:46 |广东| 查看全部
:) 学习一下,看看。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 关注公众号
  • 有偿服务微信
  • 有偿服务QQ

手机版|小黑屋|Discuz! 官方交流社区 ( 皖ICP备16010102号 |皖公网安备34010302002376号 )|网站地图|star

GMT+8, 2026-1-27 06:51 , Processed in 0.047610 second(s), 13 queries , Redis On.

Powered by Discuz! X5.0 Licensed

© 2001-2026 Discuz! Team.

关灯 在本版发帖
有偿服务QQ
有偿服务微信
返回顶部
快速回复 返回顶部 返回列表