你在这里

session

云客Drupal8源码分析之Session进阶

在本系列之前写过《云客Drupal8源码分析之Session系统》,但那部分仅仅讲到了drupal8会话的基础:Symfony的Session组件

至于drupal怎么去使用这个基础就是本主题的内容,本主题是延续篇,将讲述drupal8的全部Session知识

请先看上篇,再继续

关于drupal8的Session代码除了Symfony的Session组件外,全部都放在了:\core\lib\Drupal\Core\Session

在这个文件夹里不仅仅存放了Session的核心代码,还存放了和用户账户相关的一些代码,因为登陆多和Session有关。

drupal8系统的Session子系统是何时初始化并注入到请求对象中的呢?

这个工作是在Drupal\Core\StackMiddleware\Session里完成的,也就是http堆栈中的http_middleware.session层

云客Drupal8源码分析 之 Session系统

Session在网站中扮演非常重要的角色,储存临时用户数据、登录数据等等都用到了它,Drupal8使用到了Symfony的Session组件,该组件非常强大灵活,drupal8在此基础上有所改造和扩展,要理解Symfony的Session组件让我们先从原生php的Session机制说起:

php原生的Session采用服务器文件系统储存用户会话数据,这对一般小型网站足够了,但php做的远非如此,它提供了一整套机制让用户可以自定义Session的实现,比如加密储存、数据放数据库等等,我们看一看Session是如何实现的:

如何废除drupal的session机制,使用原生方法?

drupal的session机制导致我用第三方授权的时候因为jsessionid不同而会话失效,请问: 怎么废除drupal自带的session机制,改用原生的session方法?

 

将bootstrap.inc文件 2251行左右的代码注释掉可以达到目的,但是drupal离开了session就跑不起来了。

case DRUPAL_BOOTSTRAP_SESSION:
          require_once DRUPAL_ROOT . '/' . variable_get('session_inc', 'includes/session.inc');
          drupal_session_initialize();
          break;

 

http://drupalchina.cn/doc/1074.html 这个文章貌似在说这个问题。 但是太笼统了,

请各路高手给看看,要烟钱也可以。

标签: 
订阅 RSS - session