HS_G_960 发布于 2017-05-10 06:50

场景

项目公用一套代码,现在的需求是把其中的几个大功能分别用指定的二级域名进行访问:

例如:

项目代码都在 website 这个目录下,且是单一入口文件架构方式。

现在的服务器配置是 (nginx)的配置方式是

ServerName www.project.com, a.project.com, b.project.com

Root 都指向 website 目录

现在是可以实现基本需求,几个功能模块都可以以二级域名的形式进行访问。

问题来了

怎样实现session的共享呢?

搜了下,网上的其中的一个解决方案是将session_id 放到cookie 里面, 然后在session_start 之前取出cookie中的session_id,手动设置session_id。

还有说,使用 session_get_cookie_params 方法,设置 domain 为 .project.com

这种方法尝试了下,发现时可以的,但是问题是对应的 管理后台的 management.project.com 的登录出现了问题,即使正确登录也无法登录成功!

那么

像这种的架构方式一般都是怎样实现的呢?

更新

现在采用的session存储方式是使用数据库,

12 个回答
  • 把session理解成db,把你希望共享的数据存在db里面(或者具有db功能的容器里)
    理论是:不论什么语言写的,或者framework写的session应该都可以共享

    如果你所有的app都是使用相同的语言和framework,这样你session共享的代价是最小的

    如果你已经分成n个app了,为什么还要共享session,共享session的结果就是耦合,那你分app的目的何在?分成N个app,然后把sso搞定就可以了

    2017-05-11 05:11 回答
  • cookie domain设置为*.project.com

    2017-05-11 05:01 回答
  • cookie,db,memcache,redis以及任何能够存储的地方

    2017-05-10 22:20 回答
  • url queryString

    2017-05-10 11:33 回答
  • @Kslr 所说,放到一个独立的容器里去。

    2017-05-10 20:22 回答
  • 持久化session

    2017-05-11 01:36 回答
  • cookie有domain属性,只给要共享的cookie设置就可以了

    2017-05-10 17:03 回答
  • 你可以再写一个app,用来存储不同app的共享数据,然后通过api来相互调用,将用户的特征传入api,应该很容易实现针对统一回话的键值对管理吧?就是让这个app实现api:(session_id,key)返回value。

    2017-05-10 18:49 回答
  • 感觉最好还是持久化共享,或者你还可以像CI那样,把session用双向加密算写到cookie里面,不过,如果密钥泄露了就麻烦了!哈哈哈....

    2017-05-10 22:09 回答
  • 你好,我的项目中也从在同样的场景,目前我也在考虑解决方案,问题的核心不是存储,而是如何进行跨域共享的问题。我在考虑使用JSONP,之后会进行技术验证,希望能共同讨论。

    2017-05-10 11:05 回答
  • 相同顶级域名的话是可以通过设置实现的,如果顶级域名也不相同的话,很遗憾无法实现。但你可以通过auth实现,做一个接口接收传递过来的参数进行验证,通过后为用户生成session就像用户通过正常的登陆实现一样

    2017-05-10 18:24 回答
  • http://fuweiyi.com/others/2013/03/08/a-domain-pan-resolve-rewrite-cross-session.html
    是根据这个实现吗?

    JSESSIONID FC33C9C32AB81A8FDD5D815A77FD442E demo.dadaping.com
    JSESSIONID FC33C9C32AB81A8FDD5D815A77FD442E test.dadaping.com
    JSESSIONID FC33C9C32AB81A8FDD5D815A77FD442E maps.dadaping.com

    要实现上面的方式,但是在服务器端,如果遇到域名不同,jsession的值就重新生成了。

    2017-05-10 09:24 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
活跃用户
  • 1
    问道摩托
  • 2
    袁广龙976丶
  • 3
    逍遥子
  • 4
    亮仔
  • 5
    芙蓉花
  • 6
    作小die_syj
  • 7
    王丽珠景平怡伦_621
  • 8
    adfa3sd5f6a
  • 9
    欣欣大妮
  • 10
    sfasfs
PHP1.CN | 中国最专业的PHP中文社区 | json解析格式化 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有