利用接口模拟登录,保存不了session

(同一台服务器,系统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了。

Posted in 未分类

发表评论