Discuz & UCenter 修改手記 - 2014.12.19
最近在整JAVA和UCENTER的東西,受限於專案架構需要,無法完全以UCENTER為中心,所以在對接過程中遇到了許多不愉快的事情。經歷多番研究,終於解決了其中了兩個大問題,現記錄下來,以備日後查看。
一、解決email必須填寫的問題
專案並未要求使用者註冊時填寫email,但UCENTER API要求必須輸入email才可以通過驗證,不得已必須得修改UCENTER代碼才能繞過。以下是改動的程式碼:
/uc_server/control/user.php 69行:
<span>1</span> <span>//</span><span> NOTE: 解决email必须填写的问题 </span><span>2</span> <span>//if(($status = $this->_check_email($email)) < 0) { </span><span>3</span> <span>// return $status; </span><span>4</span> <span>//}</span>
二、解決使用者必須手動登入1次論壇的問題
由於BBS封鎖了DISCUZ自帶的註冊、登入、尋找機密等操作,所以必須實現單一登入。當中遇到了一個非常蛋痛的問題:主站註冊的帳戶同步到UCENTER之後,UCENTER並不會通知其他應用,也就是說預設情況下,其他應用程式(包括DISCUZ在內)無法在新用戶註冊之後立即更新使用者清單。細細研究之後發現,DISCUZ是在本地註冊、登入等事件中才會與UCENTER同步。這導致了,在主站新註冊的用戶,無法在BBS單點登入成功-因為在BBS中根本不存在這個用戶。解決的方法有兩個,一是使用者手動登入一次BBS,BBS自帶的機制會自動將使用者資訊從UCENTER同步過來;二是修改DISCUZ系統代碼,在單一登入要求時自動同步使用者資料。在權衡了各方面因素之後,決定採用第二套方案。以下是改動的程式碼:
/api/uc.php 192行:
<span> 1</span> <span>//</span><span> NOTE 解决用户必须手工登录1次论坛的问题</span> <span> 2</span> <span>$member</span> = getuserbyuid(<span>$uid</span>, 1<span>); </span><span> 3</span> <span> 4</span> <span>if</span> (!<span>$member</span><span>) { </span><span> 5</span> <span>$init_arr</span> = <span>explode</span>(',', <span>$_G</span>['initcredits'<span>]); </span><span> 6</span> <span>$groupid</span> = <span>$_G</span>['regverify'] ? 8 : <span>$_G</span>['newusergroupid'<span>]; </span><span> 7</span> <span> 8</span> C::t('common_member')->insert(<span>$uid</span>, <span>$get</span>['username'], <span>md5</span>(random(10)), <span>$get</span>['email'], <span>$_G</span>['clientip'], <span>$groupid</span>, <span>$init_arr</span><span>); </span><span> 9</span> <span>10</span> <span>$member</span> = getuserbyuid(<span>$uid</span>, 1<span>); </span><span>11</span> <span>} </span><span>12</span> <span>13</span> <span>if</span>(<span>$member</span><span>) { </span><span>14</span> dsetcookie('auth', authcode("<span>$member</span>[password]\t<span>$member</span>[uid]", 'ENCODE'), <span>$cookietime</span><span>); </span><span>15</span> }</span>
以上就介紹了Discuz & UCenter 修改手記 - 2014.12.19,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Discuz後台登入問題解決方法大揭秘,需要具體程式碼範例隨著網路的快速發展,網站建置變得越來越普遍,而Discuz作為一款常用的論壇建站系統,受到了許多站長的青睞。然而,正是因為其功能強大,有時候我們在使用Discuz的過程中會遇到一些問題,例如後台登入問題。今天,我們就來大揭秘Discuz後台登入問題的解決方法,並且提供具體的程式碼範例,希望能幫助到有需要

《Discuz註冊流程詳解:讓您輕鬆修改個人信息,需要具體代碼示例》Discuz是一款功能強大的社區論壇程序,被廣泛應用於各類網站,在用戶註冊和個人信息修改方面,提供了豐富的功能和介面。本文將為您詳細介紹Discuz的註冊流程,並提供具體的程式碼範例,幫助您輕鬆自訂和修改個人資訊。一、使用者註冊流程在Discuz中,使用者註冊是網站的重要功能之一,註冊流程的順暢與

bbs全名為Bulletin Board System,中文意思為“電子公告板系統”,一般是指網路論壇,是一個和網路技術有關的網路交流場所。其特點:資訊量大、資訊更新快、互動性強。

《探索Discuz:定義、功能及程式碼範例》隨著網路的快速發展,社群論壇已成為人們獲取資訊、交流觀點的重要平台。在眾多的社群論壇系統中,Discuz作為國內較知名的一種開源論壇軟體,備受廣大網站開發者和管理員的青睞。那麼,什麼是Discuz?它又有哪些功能,能為我們的網站提供怎樣的幫助呢?本文將對Discuz進行詳細介紹,並附上具體的程式碼範例,幫助讀者更

Discuz用戶必備!改名道俱全面解析!在Discuz論壇中,改名功能一直備受用戶關注與需求。對於一些需要改名的使用者來說,透過改名道具可以輕鬆實現使用者名稱的修改,而且這也是一種有趣的互動方式。以下就讓我們深入探討Discuz中的改名道具,包括如何取得、如何使用、一些常見問題的解決方法。 1.取得改名道具在Discuz中,改名道具通常是透過點數購買或管理員

遇到Discuz密碼錯誤怎麼辦?快速解決方案分享! Discuz!是一款非常受歡迎的論壇程序,它為用戶提供了一個方便交流的平台。在使用Discuz!論壇時,有時會遇到密碼錯誤的情況,這可能會導致使用者無法正常登入和使用論壇。那麼,遇到Discuz!密碼錯誤時,我們該如何快速解決這個問題?以下將分享一些解決方案,並提供具體的程式碼範例供參考。一、檢查密碼是否

標題:解決Discuz微信分享無法顯示的問題,需要具體程式碼範例隨著行動網路的發展,微信成為了人們日常生活中不可或缺的一部分。在網站開發中,為了提升使用者體驗和擴大網站的曝光度,許多網站會整合微信分享功能,讓使用者能夠輕鬆分享網站的內容到朋友圈或微信群組。然而,有時在使用Discuz等開源論壇系統時,會遇到微信分享無法顯示的問題,這給使用者體驗帶來了一定的困

Discuz編輯器:強大的網頁編輯工具,需要具體程式碼範例隨著網路的發展,網站建立和內容編輯變得越來越重要。作為常見的網頁編輯工具,Discuz編輯器在網站建置中扮演著重要的角色。它不僅提供了豐富的功能和工具,還能夠幫助使用者更方便地編輯和發佈內容。在本文中,我們將介紹Discuz編輯器的特點和使用方法,並提供一些具體的程式碼範例,來幫助讀者更好地了解和使用
