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