Questions tagged «sessions»

5
如何为匿名用户保存会话数据?
在上一个有关Drupal 6的项目中,我确实使用类似于以下代码的代码保存了数据: $_SESSION['xxx'] = serialize($data); 在Drupal 7中,它不起作用。 我应该如何在Drupal 7中为匿名用户保存会话数据?
20 7  sessions 

2
了解Drupal的会话管理和用户身份验证
我有一个要求,我必须用中央服务器(即SSO服务器)的身份验证替换默认的用户身份验证。 通过调试Drupal,我知道所有会话管理都在includes/session.inc文件中进行。我要进行验证,如图所示: 场景:登录 步骤的详细信息将是: 替换登录表单,以将用户名和密码提交到SSO服务器(不是在Drupal上,而是在.NET上)。 使用该站点的数据库在SSO服务器上对用户进行身份验证;并将响应发送回我的网站的某个自定义PHP页面(或模块形式的表单?)。 使用响应,在用户表中标识用户,然后为该用户创建会话,而无需检查密码(因为这将意味着双重身份验证)。默认情况下,Drupal设置cookie的名称为$insecure_session_namevariable,值为value $sid。我希望Drupal不要在此处设置cookie,而是将变量的值发送到SSO服务器。 SSO服务器将获取值,创建一个cookie,然后将其放置在主域中domain.com(以提醒两者,my website并且sso server它们都位于主域的子域中,而在Drupal中也是如此)。然后,Drupal站点可以使用该cookie登录。 我知道这是一个很难回答的问题,我只是在寻找应该如何开始的指针?正如他们所说的“您不应该破解核心”。因此,我的问题是: 我应该在哪里寻找深度了解Drupal身份验证和会话管理的方式? 有没有一种方法可以includes/session.inc使用钩子来调用函数(如函数注释中所说的“仅供内部使用/不得修改”)? 注意:我将使用相同的方法注册用户,以便将记录保留在SSO服务器的中央数据库中。在此期间,将在Drupal站点的数据库中为同一用户输入一些垃圾密码(因为登录时不会检查该密码)。

4
如何注销所有活动用户?
我不想将网站置于“维护模式”,而是将其置于完整的“只读模式”。有一个用于此的模块,但是,它仅防止“节点添加和编辑”。我想防止所有用户活动(包括登录和注册)基本上都从(清漆)缓存提供网站服务。作为附带的好处,如果站点中充满了请求,我将使用这种类型的“只读模式”。 我的问题:如何注销所有活动用户?然后可以使用钩子重定向登录和注册。
15 7  sessions 

4
为匿名用户存储数据/会话
我正在一家商店里工作,对于购物车,我需要在付款之前存储物品。 $tempstore = \Drupal::service('user.private_tempstore')->get('boutique'); $tempstore->set('poids', $form_state->getValue('poids')); 我来看看以下用户服务: pivate_tempstore和shared_tempstore 但这仅对验证用户有效。 我可以用来存储数据吗?$ _SESSION吗?还是Drupal 8为此提供服务?
12 8  sessions  files 

2
如何设置和检索Cookie?
经过几天和几个小时的工作,我仅发现有关设置cookie后如何处理的问题和补丁,但没有人提到如何首先设置cookie。 我们的目的是为所有用户角色设置着陆页的(会话)cookie,并通过视图在某些页面上检索该cookie,以在出站链接的URL中使用。在标准编程中,这将是非常简单的(即使我理解),但是我开始怀疑是否在Drupal中确实可行。
12 sessions 

4
为什么我的$ messages延迟一页刷新?
我有一个带有非常简单的模板的页面: <!DOCTYPE html> <html> <head><title>TEST REGISTRATION PAGE</title></head> <body> <?php print drupal_get_form('user_register'); print $messages; print $closure; print $main_content; ?> </body></html> 基本上,它显示注册表格,仅显示其他内容。 我在表单上输入了一些错误的数据-已经使用的用户名(admin),没有电子邮件地址。 我点击“创建新帐户”。 该页面似乎已提交并重新加载,但没有任何反应- 没有显示错误消息。 我刷新页面(F5)。 Firefox显示“要显示此页面,Firefox必须发送将重复先前执行的任何操作的信息”-因此,我知道我的POST以前已经过过。 我在该对话框窗口中单击“重新发送”。 出现我的错误消息-“必填电子邮件地址”,“名称admin已被使用”。 到目前为止,这是我测试过的所有表格,而不仅仅是注册表格。 为什么会这样呢?我该怎么做以解决此问题,以便第一次显示错误消息? 我很乐意做我需要调试的所有事情,但是我需要一些指导才能开始寻找。:)
10 6  sessions 

2
register.json不会登录用户或返回用户的会话/令牌/密码
我尝试了太多的变化以在此处列出,但基本要点是我无法通过服务注册后立即使用户登录。我尝试了全新的Drupal 7.33安装,仅启用了Services 7.x.3.11,并且drupalgap 7.x.1.9提供了默认资源设置。 当我使用Drupal界面注册时,创建了用户,打开了会话,并登录了我的个人资料页面。 与 当我调用Services端点时/services/user/register.json,Drupal创建了帐户,但会话不会持久。请参阅下面的屏幕截图。 我该如何A.让该会话保留下来以进行后续的Service资源调用,或者B.挂钩以将用户的密码或自动生成的密码重新添加回json响应中,这样我就可以以编程方式重新提交客户端的/login.json表单(仍然存在)? 这个问题是全局的$ user在Drupal接口和Services模块之间有什么区别?使用LoginToboggan描述了我同样的问题。 在我的屏幕快照中,您将看到一个名为“ login debug”的调试行。它来自“ /sites/all/modules/logintoboggan/logintoboggan.module”的第333行,在这里我尝试了所有这些都无济于事... function logintoboggan_process_login($account, &$edit, $redirect = array()){ global $user; $user = user_load($account->uid); //watchdog('login debug', json_encode($account)); watchdog('login debug', json_encode($edit)); //user_login_submit(array(), array('uid' => $account->uid)); user_login_finalize($edit); // $user = user_load($account->uid); // $user->token = drupal_get_token('services'); // WE HAVE A TOKEN ALTHOUGH …

3
如何以编程方式在D7中注销另一个用户?
在我们的网站上,我们有客户帐户,每个帐户都有一个超级管理员和属于该帐户的子用户。 我们希望超级管理员能够强制子用户注销。不管会话信息存储在Redis,Memcache还是数据库中,销毁在Drupal中有效的用户会话的最佳方法是什么? 在有人不愿意建议user_logout()之前,这会破坏当前用户的会话。我希望当前用户能够销毁其他用户的会话!
8 sessions  users 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.