如题。
请问2.0.2高级程序模板建立的应用。 为什么前台登录后,后台不会同步登录信息? 或者后台登陆前台也不会同步登录信息。
我自己将应用改名了
backend => admin
frontend => www
并且新建了manage的应用
现在登录了 其中任何一个应用 其他2个应用不能像官方的初始化程序一样, 同步登录信息, 不知道是哪里的问题。 还请各位朋友帮助下,谢谢。
我安装了 advanced
模板,测试了下
在 common
下 配置www.t1.com
, admin.t1.com
可以实现一同登录,一同注销,你按照我的这个配置下看看,其他的配置就不需要了,这个主要是为了让 PHPSESSIONID
,和 _identity
生成的 cookie
都在域 .t1.com
下,并且共用 session
估计你没有针对两个应用使用不同的 session name
,都是默认的 PHPSESSID
,这样是会被相互覆盖的,需要设置不同的 session name
, session_name。yii\web\Session
有 public function setName($value)
方法, 所以你可以在配置文件里面配置不同的 session name
, 代码上不用改动,推荐这样子,试下看看。
是配置文件是怎么写的?
确认是不是 backend,frontend 用的 phpsession id 是否相同
不能在 common 下配置,要在 frontend 和 backend 下分别配置,并且配置成不同的 name
配置在 components 组件内的,移动到上层,肯定是错的
你在 common/config 里面配置的 session 已经生效了
这里两个应用的 PHPSESSIONID
都已经变成了 MySSID
了,但是因为在 common
下面,所有 www
和 admin
公用了 session name
,所以要单独配置在 www
和 admin
下,配置成不同的名字,然后在检查下生成的 cookie name
有没有变化,如果有不同,但是还是无法共同登录的话,有可能就是其他原因造成的了
还有,测试的时候多刷新几次,先把其他的 cookie
清理掉,在单独测试
admin.xxx.com
www.xxx.comwww
的站点下 cookie
没有 _identity
这个 key
,是没有登录么?admin
和 www
都登录的情况下,_identity
应该是有两个的,admin
下有一个www
下有一个
你都登录下,把 _identity
的 cookie
信息都拿出来看下
靠,你说的是前后台同步登录呀
理解错了,以为你说的是 前台登录了,后台就掉线了,后台登录了,前台就掉线了
,以为你相同的 session
被覆盖了
在 common 配置下 components 里面,配置下 user
用这个把 identity cookie 的信息配置下,生成的 cookie 信息应该是
测试下看 ok 不,我这边没有 advance 模板,我弄个看看
我也遇到的,我的解决办法是:
分别使用localhost:8080访问,和127.0.0.1:8081访问,这样两者的根域不同,则USER登陆后的COOKIE有效域也不同,就不会出现另一个用户掉线的问题了。