1. 准备工作 1、进入你的网站后台--站长--RESTful 接口--应用列表 新增应用-填写应用名称,提交后会得到以下信息,保存好你的appid和secret 2、进入你的网站后台--站长--RESTful 接口--接口列表 打开https://gitee.com/Discuz/discuz-restful-api,下载这个git文件, 点击导入接口。选择本地安装-上传文件,在下面的选择文件中选择已下载的文件“discuz_restful_official_trial.xml”,点击提交。这样你的接口列表中就会有默认的一些接口了,接下来介绍怎么通过接口实现登录。 2. 开始开发接下来的示例以php作为演示,如果有其他的语言,可以参考此实例; 1、使用appid、secret、接口url(http://dz.local:8080/api/restful/?token)获取token,获取函数参考此实例中的_request函数
2、获取到的token需要自己存储,用于请求下一个接口时使用; 其余的接口请求可参考具体的附件 参考文件中的逻辑关系梳理
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() 方法发送,该方法负责: 生成请求头(appid、nonce、timestamp、signature) 添加 token(如果存在) 发送 HTTP POST 请求 返回解码后的 JSON 响应 6. 会话管理程序使用 PHP session 存储以下信息: token 及其获取时间 用户登录信息及登录时间 注册字段信息 验证码状态和 hash 值 7. 退出和清理logout() 方法清除所有 session 数据并重定向到首页 "清除 Token" 按钮可手动清除 token 和相关 session 数据
|