(同一台服务器,系统ubuntu,apache+php)
我是先在a站post登录信息(登录名,密码)==》到b站,
b站通过验证后,会存uid的session,这个时候打印session是存在的,
然后返回成功信息,然后a站收到验证,也存uid的session,
存完之后,我就直接访问b站登录后的页面,这个时候b站的session是空的,我在b站的时候已经保存过session的,也打印出来过
如果我直接在b站写一个 session(‘uid’, 320);,然后直接访问,然后再访问登录界面,就可以直接进入了
但是我在a站写一个同样保存session的,session(‘uid’, 320);,然后再访问b站的登录后的界面,进不去,说明a站的session没被保存起来
但是这个做法,在我本地,可以成功的登录
请教大神,处理好追加分数
回复讨论(解决方案)
sessionid 是通过 cookie 传递的,既然你是 a、b 两个站,显然 cookie 是不能互通的(跨域了)
让 cookie 跨域的方法很多,但都是以牺牲 cookie 的私密性为代价的
sessionid 是通过 cookie 传递的,既然你是 a、b 两个站,显然 cookie 是不能互通的(跨域了)
让 cookie 跨域的方法很多,但都是以牺牲 cookie 的私密性为代价的
这两个站用ip就可以实现
用了域名就无法保存了
域名不同,cookie跨域了。
所以session不能想通。
要相同,可以在a站登入时,创建一个iframe,iframe b站的url,在b站也创建session。
域名不同,cookie跨域了。
所以session不能想通。
要相同,可以在a站登入时,创建一个iframe,iframe b站的url,在b站也创建session。
那如果我同一台服务器,两套程序,不想让他公用session呢
项目是通过域名访问的,不同的项目间天然不共用session
若想在不同的域名间共享 session,是需要花费很多精力的(sso)
项目是通过域名访问的,不同的项目间天然不共用session
若想在不同的域名间共享 session,是需要花费很多精力的(sso)
那如果我同一台服务器,两套程序,不想让他公用session呢
听不懂?
那如果我同一台服务器,两套程序,不想让他公用session呢
如果這樣,你域名不同,就不會公用sessio了。