日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Discuz UCenter 修改手记 - 2014.12.19

發布時間:2023/12/2 编程问答 43 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Discuz UCenter 修改手记 - 2014.12.19 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在整JAVA和UCENTER的東西,受限于項目架構需要,無法完全以UCENTER為中心,所以在對接過程中遇到了許多不愉快的事情。經歷多番研究,終于解決了其中了兩個大問題,現記錄下來,以備日后查看。

一、解決email必須填寫的問題

項目并不要求用戶注冊時填寫email,但UCENTER API要求必須輸入email才可以通過驗證,不得已必須得修改UCENTER代碼才能繞過。以下是改動的代碼:

/uc_server/control/user.php 69行:

1 // NOTE: 解決email必須填寫的問題 2 //if(($status = $this->_check_email($email)) < 0) { 3 // return $status; 4 //}

?

二、解決用戶必須手工登錄1次論壇的問題

由于BBS屏蔽了DISCUZ自帶的注冊、登錄、找密等操作,所以必須要實現單點登錄。當中遇到了一個非常蛋疼的問題:主站注冊的賬戶同步到UCENTER之后,UCENTER并不會通知其他應用,也就是說默認情況下,其他應用(包括DISCUZ在內)無法在新用戶注冊之后立即更新用戶列表。細細研究之后發現,DISCUZ是在本地注冊、登錄等事件中才會與UCENTER同步。這導致了,在主站新注冊的用戶,無法在BBS單點登錄成功——因為在BBS中根本不存在這個用戶。解決的方法有兩個,一是用戶手工登錄一次BBS,BBS自帶的機制會自動將用戶信息從UCENTER同步過來;二是修改DISCUZ系統代碼,在單點登錄請求時自動同步用戶數據。在權衡了各方面因素之后,決定采用第二套方案。以下是改動的代碼:

/api/uc.php 192行:

1 // NOTE 解決用戶必須手工登錄1次論壇的問題 2 $member = getuserbyuid($uid, 1); 3 4 if (!$member) { 5 $init_arr = explode(',', $_G['initcredits']); 6 $groupid = $_G['regverify'] ? 8 : $_G['newusergroupid']; 7 8 C::t('common_member')->insert($uid, $get['username'], md5(random(10)), $get['email'], $_G['clientip'], $groupid, $init_arr); 9 10 $member = getuserbyuid($uid, 1); 11 } 12 13 if($member) { 14 dsetcookie('auth', authcode("$member[password]\t$member[uid]", 'ENCODE'), $cookietime); 15 }

?

轉載于:https://www.cnblogs.com/ymind/p/4174281.html

總結

以上是生活随笔為你收集整理的Discuz UCenter 修改手记 - 2014.12.19的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。