关于多点的用户认证问题

有个问题想请教一下大家

 想设计这样一个认证系统,所有的子站点(site1.example.com,...)都通过auth.example.com站点来负责用户认证。


 


 [b]考虑到session很占内存资源,因此不想用到任何session的方式来存储用户状态,而只考虑通过客户端cookie的方式来实现[/b]。





 用户登录认证以后,将必要的用户信息存储在cookie中,同时存入一个安全码,用来校验cookie数据的真实性





 cookie是保存在example.com域下,因此任何其它子站点都可读取的到,在想要判断用户身份的时候,只需直接读取cookie数据进行分析即可,如数据非法或失效,直接redirect到auth.example.com进行重新登录。





 现在所有子站点都是独立的yii application, 并共用一个数据库





 我现在的想法是:在auth.example.com的UserIdentity.authenticate方法中写入cookie


 


 然后写一个webUser类给所有子站点共用(直接继承CWebUser,放在Component下),重写其中的login,logout,getId,getState方法





 但困惑是,不知道如何处理与application()->user的关系,或者能否集成在一起?





 (qiang兄能否指点一下)





 thanks!!!

不好意思,标题写错了,应该是“关于多站点用户认证问题”

你在app config里声明就可以了:

‘components’=>array(

‘user’=>array(

  'class'=>'MyUserClass',

),

)