久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

Discuz! 官方交流社區

標題: 在 X5 中做一個 Discuz! 登錄 [打印本頁]

作者: monkeye    時間: 2024-10-29 09:31
標題: 在 X5 中做一個 Discuz! 登錄
大哥,你標題啥意思!?沒看懂啊!!

是不是很多人看到這個標題沒明白啥意思?哈哈,我們都知道 QQ 登錄、微信登錄是吧,那如何做一個 Discuz! 登錄呢?

這回聽明白沒?沒錯,就是這個 Discuz! 登錄到另一個 Discuz! 的意思,聽著有點神奇吧!?


要說這個,我們要首先說下 X5 的一大特性 RESTful 接口。這是 X5 基于 oAuth2 標準設計的開放性接口。是的,開放性,意思是你可以自己隨意開發自己的 API 接口,而且無需寫代碼,只需寫一個 XML。關于如何開發 API 在這文章里我就不多說了,只給個鏈接,自己讀去哈“Discuz RESTful API: Discuz RESTful API 開發手冊

在做今天我要做的事情之前,我們先準備2個X5,先分別看下2個 X5 的后臺
[attach]32474[/attach]
站點 A 有 3 個用戶

[attach]32475[/attach]
站點 B 只有一個 admin 用戶

我們拿站點 A 作為用戶中心,站點 B 用戶直接登錄站點 A 的用戶。

之前的文章“在 X5 下開發一個第三方登錄”我們提到了如何開發一個第三方登錄,這次我們加強下寫法,直接調用 RESTful 接口實現登錄

我們先打開站點 A 的 RESTful 后臺,上傳 discuz_restful_official_trial.xml 文件,然后添加一個應用
[attach]32476[/attach][attach]32477[/attach][attach]32478[/attach]

然后我們就可以開始寫代碼了,在站點 B 把前文的插件復制過來,打開 account.class.php,把 RESTful 基礎類準備好

[attach]32479[/attach]

還記得前文中 login($referer = '', $op = 0) 方法的這個簡易登錄框嗎?我們繼續用,不改它

[attach]32480[/attach]

我們直接修改下的身份校驗部分

[attach]32481[/attach]

這里,我們先調用 /token 接口獲取了 token,然后調用 /member/login 接口進行登錄。登錄成功后我們通過 $ret['data']['user'] 獲取身份。
作為范例,我們就不進行復雜的加密過程了,把登錄的身份信息傳遞給 callback 地址。

在 getLoginUser() 方法中我們把傳遞過來的數據入庫,沿用前文范例的邏輯就可以

[attach]32482[/attach]

我們測試下流程:

[attach]32485[/attach]
登錄的時候點這個登錄入口

[attach]32486[/attach]
彈出那個簡易的登錄框,我們輸入站點 A 的第三個用戶

[attach]32487[/attach]
成功,站點 B 自動注冊了這個用戶并登錄成功,我們去后臺看一下

[attach]32488[/attach]
2個人了,完成!

這就是最簡單的 Discuz! 登錄范例,喜歡不!

作者: 科站網    時間: 2024-10-29 09:37
沙發。。。。。
作者: 克米設計    時間: 2024-10-29 09:39
nice
作者: 凹凸曼    時間: 2024-10-29 09:41


作者: hong5305    時間: 2024-10-29 09:47
看看看看看看看




歡迎光臨 Discuz! 官方交流社區 (http://www.9999xn.com/) Powered by Discuz! W1.0