1.session 默认使用文件存储的,文件名称类似sess_323d97e65fd0f37ac187de61a82e521b,这个是session id ,是用户什么算法怎么生成的?2.session 一般是和cookie配合使用的,cookie 的值为323d97e65fd0f37ac187de61a82e521b,是否可以利用这个值实现同步登录问题

解决方案 »

  1.   

    就会简单的使用session,留个记号,等待大牛出答案
      

  2.   

    1. session id是为了不让人知道而达到安全的目的,所以,session id的生成越随机越好。它是服务器端生成的,用来识别用户的。如果别人知道了你的session id那么它也可以以你的身份登陆了。2. 可以是可以,但是cookie是不能跨域的,所以最好是放到URL里,比如xxx.php?PHPSESSID=323d97e65fd0f37ac187de61a82e521b,而且如果是两台不同的服务器,那么session的数据也要保证是共享的。
      

  3.   

    比如在www.a.com 调用b.com的接口 登录后,
    获得b.com的的PHPSESSIONID,然后页面跳转到b.com/index.php?PHPSESSIONID=xxxx, 
    应该怎么处理 才能使用b.com上的用户处于登录状态?
      

  4.   

    你还是看看Oauth2.0吧或者SSO吧.
      

  5.   

    不可以:
    1、cookie 不可以跨域(虽然有技术手段让其跨域),但这就相当于公开个人隐私。是不可取的,因为 cookie 中并不只是 PHPSESSID
    2、php 的 session 默认是存储于文件的,所以如果网站不在同一机器上,则 session 文件无法共享。即便是在同一机器上,也可以通过 session_save_path 设置不同的目录而使相同的 sessionid 存放在不同的地方,而不能共享
    3、虽然 2 可以通过公共的数据库保存 session 来解决,但开放数据库远程访问就没有安全可言了。何况同步登录的网站也不一定都是基于 php 的,仅允许php网站同步登录的话,显然是残废的当然你也可以回避掉以上提及的不利因素,去完成所谓的同步登录。但你也就是掉入井底了SSO 单点登录,已是成熟的技术了,并且已有好几款实用的系统可供选用。完全没有自己另辟蹊径
      

  6.   

    你本地的cookie中的sessionid对得上b.con服务器上的sessionid就可以了
      

  7.   

    例如发送请求时候:
    GET /translate/index.php/Index/syncLogin?sid=694bc03cb193ab4b9b9678250c07516b HTTP/1.1
    Accept: */*
    Accept-Language: zh-cn
    User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; InfoPath.2)
    Accept-Encoding: gzip, deflate
    Host: localhost
    Connection: Keep-Alive
    Cookie: PHPSESSID=e7c25383f551075537376ae7b18a184c这个Cookie的值能手动修改吗?