Rumah pembangunan bahagian belakang tutorial php Discuz & UCenter 修改手记 - 2014.12.19

Discuz & UCenter 修改手记 - 2014.12.19

Aug 08, 2016 am 09:32 AM
bbs discuz email

最近在整JAVA和UCENTER的东西,受限于项目架构需要,无法完全以UCENTER为中心,所以在对接过程中遇到了许多不愉快的事情。经历多番研究,终于解决了其中了两个大问题,现记录下来,以备日后查看。

一、解决email必须填写的问题

项目并不要求用户注册时填写email,但UCENTER API要求必须输入email才可以通过验证,不得已必须得修改UCENTER代码才能绕过。以下是改动的代码:

/uc_server/control/user.php 69行:

1

2

3

<span>1</span> <span>//</span><span> NOTE: 解决email必须填写的问题

</span><span>2</span> <span>//if(($status = $this-&gt;_check_email($email)) <span>3</span> <span>//    return $status;

</span><span>4</span> <span>//}</span></span>

Salin selepas log masuk

二、解决用户必须手工登录1次论坛的问题

由于BBS屏蔽了DISCUZ自带的注册、登录、找密等操作,所以必须要实现单点登录。当中遇到了一个非常蛋疼的问题:主站注册的账户同步到UCENTER之后,UCENTER并不会通知其他应用,也就是说默认情况下,其他应用(包括DISCUZ在内)无法在新用户注册之后立即更新用户列表。细细研究之后发现,DISCUZ是在本地注册、登录等事件中才会与UCENTER同步。这导致了,在主站新注册的用户,无法在BBS单点登录成功——因为在BBS中根本不存在这个用户。解决的方法有两个,一是用户手工登录一次BBS,BBS自带的机制会自动将用户信息从UCENTER同步过来;二是修改DISCUZ系统代码,在单点登录请求时自动同步用户数据。在权衡了各方面因素之后,决定采用第二套方案。以下是改动的代码:

/api/uc.php 192行:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

<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')-&gt;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> }

Salin selepas log masuk

以上就介绍了Discuz & UCenter 修改手记 - 2014.12.19,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Discuz penyelesaian masalah log masuk latar belakang didedahkan Discuz penyelesaian masalah log masuk latar belakang didedahkan Mar 03, 2024 am 08:57 AM

Discuz penyelesaian masalah log masuk latar belakang didedahkan

Apa itu Discuz? Definisi dan pengenalan fungsi Discuz Apa itu Discuz? Definisi dan pengenalan fungsi Discuz Mar 03, 2024 am 10:33 AM

Apa itu Discuz? Definisi dan pengenalan fungsi Discuz

Wajib ada untuk pengguna Discuz! Analisis komprehensif untuk menamakan semula prop! Wajib ada untuk pengguna Discuz! Analisis komprehensif untuk menamakan semula prop! Mar 12, 2024 pm 10:15 PM

Wajib ada untuk pengguna Discuz! Analisis komprehensif untuk menamakan semula prop!

Apakah maksud bbs? Apakah maksud bbs? Mar 06, 2024 pm 04:14 PM

Apakah maksud bbs?

Apakah yang perlu saya lakukan jika saya menemui kata laluan Discuz yang salah? Perkongsian penyelesaian pantas! Apakah yang perlu saya lakukan jika saya menemui kata laluan Discuz yang salah? Perkongsian penyelesaian pantas! Mar 03, 2024 am 09:33 AM

Apakah yang perlu saya lakukan jika saya menemui kata laluan Discuz yang salah? Perkongsian penyelesaian pantas!

Penjelasan terperinci tentang proses pendaftaran Discuz: membolehkan anda mengubah suai maklumat peribadi dengan mudah Penjelasan terperinci tentang proses pendaftaran Discuz: membolehkan anda mengubah suai maklumat peribadi dengan mudah Mar 13, 2024 pm 12:21 PM

Penjelasan terperinci tentang proses pendaftaran Discuz: membolehkan anda mengubah suai maklumat peribadi dengan mudah

Discuz panduan operasi pengubahsuaian nama domain Discuz panduan operasi pengubahsuaian nama domain Mar 09, 2024 pm 04:36 PM

Discuz panduan operasi pengubahsuaian nama domain

Discuz log masuk latar belakang gagal? Ajar anda cara menyelesaikannya dengan mudah! Discuz log masuk latar belakang gagal? Ajar anda cara menyelesaikannya dengan mudah! Mar 02, 2024 pm 06:03 PM

Discuz log masuk latar belakang gagal? Ajar anda cara menyelesaikannya dengan mudah!

See all articles