Drupal内置单点登录方案

首先说统一登录不需要统一代码,有的人参照老葛 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表,否则无法实时的看到修改后的同步结果。

猜你喜欢

转载自hao3721.iteye.com/blog/2009912