本帖最后由 有愛(ài)設(shè)計(jì) 于 2025-9-24 19:10 編輯
1. 準(zhǔn)備工作1、進(jìn)入你的網(wǎng)站后臺(tái)--站長(zhǎng)--RESTful 接口--應(yīng)用列表 新增應(yīng)用-填寫應(yīng)用名稱,提交后會(huì)得到以下信息,保存好你的appid和secret
截圖202509241514263536.jpg (63.59 KB, 下載次數(shù): 6)
下載附件
2025-9-24 15:14 上傳
2、進(jìn)入你的網(wǎng)站后臺(tái)--站長(zhǎng)--RESTful 接口--接口列表 打開(kāi)https://gitee.com/Discuz/discuz-restful-api,下載這個(gè)git文件, 點(diǎn)擊導(dǎo)入接口。選擇本地安裝-上傳文件,在下面的選擇文件中選擇已下載的文件“discuz_restful_official_trial.xml”,點(diǎn)擊提交。這樣你的接口列表中就會(huì)有默認(rèn)的一些接口了,接下來(lái)介紹怎么通過(guò)接口實(shí)現(xiàn)登錄。 2. 開(kāi)始開(kāi)發(fā)接下來(lái)的示例以php作為演示,如果有其他的語(yǔ)言,可以參考此實(shí)例; 1、使用appid、secret、接口url(http://dz.local:8080/api/restful/?token)獲取token,獲取函數(shù)參考此實(shí)例中的_request函數(shù)
截圖202509241514388986.jpg (92.29 KB, 下載次數(shù): 3)
下載附件
2025-9-24 15:14 上傳
2、獲取到的token需要自己存儲(chǔ),用于請(qǐng)求下一個(gè)接口時(shí)使用;
截圖202509241514485600.jpg (89.59 KB, 下載次數(shù): 4)
下載附件
2025-9-24 15:14 上傳
其余的接口請(qǐng)求可參考具體的附件 游客,如果您要查看本帖隱藏內(nèi)容請(qǐng) 回復(fù)參考文件中的邏輯關(guān)系梳理
1. 初始化和 Token 獲取程序首先創(chuàng)建 request 類實(shí)例并調(diào)用 getToken() 方法。 getToken() 方法檢查 session 中是否已有有效的 token(有效期 2 小時(shí))。 如果沒(méi)有有效 token 或已過(guò)期,則通過(guò) _request('/token', []) 請(qǐng)求新的 token。 獲取到的 token 會(huì)被保存到 session 中供后續(xù)使用。 2. 主菜單顯示成功獲取 token 后,調(diào)用 showMenu() 方法顯示操作界面。 界面包括: Token 信息展示(token 值、獲取時(shí)間、過(guò)期時(shí)間) 用戶登錄狀態(tài)檢查 根據(jù)登錄狀態(tài)顯示登錄表單或用戶信息 API 測(cè)試菜單(僅在登錄后可用) 3. 用戶認(rèn)證流程登錄流程 用戶填寫用戶名和密碼提交登錄請(qǐng)求 如果需要驗(yàn)證碼(由 getSeccode() 提供),用戶還需輸入驗(yàn)證碼 調(diào)用 login() 方法發(fā)送登錄請(qǐng)求到 /member/login 登錄成功后將用戶信息保存到 session,并清除驗(yàn)證碼狀態(tài) 注冊(cè)流程 用戶點(diǎn)擊注冊(cè)鏈接觸發(fā) showRegisterForm() 方法 該方法先調(diào)用 /member/registerInfo 獲取注冊(cè)所需字段信息 顯示包含動(dòng)態(tài)字段的注冊(cè)表單(用戶名、密碼、郵箱、驗(yàn)證碼等) 用戶提交后,register() 方法收集表單數(shù)據(jù)并調(diào)用 /member/register 完成注冊(cè) 4. 驗(yàn)證碼處理登錄驗(yàn)證碼:通過(guò) getSeccode() 方法獲取,調(diào)用 /seccheck/seccode 接口 注冊(cè)驗(yàn)證碼:通過(guò) getRegisterSeccode() 方法獲取,同樣調(diào)用 /seccheck/seccode 接口 驗(yàn)證碼圖片以 base64 編碼形式返回并在前端顯示 5. API 接口測(cè)試登錄后可以測(cè)試以下接口: 獲取版塊列表 (getForumlist()):調(diào)用 /index/forumlist 接口 獲取帖子列表 (getForumDisplay()):調(diào)用 /forumdisplay 接口 獲取帖子詳情 (getViewthread()):調(diào)用 /viewthread 接口 所有 API 調(diào)用都通過(guò) _request() 方法發(fā)送,該方法負(fù)責(zé): 生成請(qǐng)求頭(appid、nonce、timestamp、signature) 添加 token(如果存在) 發(fā)送 HTTP POST 請(qǐng)求 返回解碼后的 JSON 響應(yīng) 6. 會(huì)話管理程序使用 PHP session 存儲(chǔ)以下信息: token 及其獲取時(shí)間 用戶登錄信息及登錄時(shí)間 注冊(cè)字段信息 驗(yàn)證碼狀態(tài)和 hash 值 7. 退出和清理logout() 方法清除所有 session 數(shù)據(jù)并重定向到首頁(yè) "清除 Token" 按鈕可手動(dòng)清除 token 和相關(guān) session 數(shù)據(jù)
|