首先說統一登錄不需要統一代碼,有的人蔘照老葛 thinkindrupal裏介紹的說要所有站點必須統一使用一套代碼,這是不對的,老葛也沒有這樣說,只不過沒有告訴大家這個問題。
要實現內置單點登錄,注意以下幾項:
1.首先如果不需要統一代碼, 那麼各站點還是正常安裝,網站文件夾都是並列的。
2.幾個站點的數據庫名字:選一個作爲主站,主站的數據庫名字比如是test,那麼其它子站的數據庫必須以主站數據庫名爲前綴,如:test_a, test_b
3.設置幾個站點的cookie_domain爲同一個名字,如:test.com (在settings.php裏設置)
4.在子站的settings.php中設置統一登錄需要的相關數據表的前綴,如:
$databases = array (
'default' =>
array (
'default' =>
array (
'database' => 'test_a',
'username' => 'root',
'password' => '',
'host' => 'localhost',
'port' => '',
'driver' => 'mysql',
'prefix' => array(
'default' => '',
'users' => 'test.',
'sessions' => 'test.',
'role' => 'test.',
'authmap' => 'test.',
'field_data_field_qq' => 'test.',
'field_revision_field_qq' => 'test.',
'cache_field' => 'test.',
),
),
),
);
單純實現統一登錄只需要設置users, sessions兩個表統一即可。
如果要同步用戶擴展字段,注意除了要同步字段表,還要同步cache_field表,否則無法實時的看到修改後的同步結果。