有个问题想请教一下大家
想设计这样一个认证系统,所有的子站点(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!!!