YII 多子域名同步登录
a.meylou.com和b.meylou.com不做登录。c.meylou.com这个专门做用户登录。c站登录之后a,b站点同时登录。
第一步:修改php.ini配置文件,把cookie_domain=改成“cookie_domain=meylou.com”
第二部:修改各个站点的config 文件:components节点->user节点->加上'stateKeyPrefix'=>'你的前缀',最后大概是这样的:
1 'components'=>array( 2 'user' => array( 3 'allowAutoLogin' => true, 4 'stateKeyPrefix'=>'yourfix', 5 ), 6 )
第三部: 修改各个站点的config 文件:components节点加上statePersister节点,最后大概是这样的:
'components'=>array( 'statePersister'=>array( 'class'=>'system.base.CStatePersister', 'stateFile'=>'/protected/runtime/state.bin', ), ),
OK了。解释下:
第一步,确保PHPSESSIDn能在各个二级域名下通用。这样SESSION就能共享了!
第二部,确保每个站点验证登录信息的时候用同样的前缀。
第三部,YII验证有一个state.bin保存了HASH,他要读取这个,把state.bin共用就好了!