CakePHP 2.0 账户激活后自动登录

2023-12-24

我正在研究我们新项目的用户管理组件。 计划是:

  1. 用户使用最少量的帐户数据(用户名、密码、电子邮件)在页面上注册
  2. 用户收到一封电子邮件,其中包含用于激活帐户的激活链接
  3. 用户点击链接并激活他的帐户
  4. 系统在激活后自动登录用户,并将其重定向到带有帐户信息的仪表板(上次登录、嗨“用户名”等)

但自动登录存在一些问题。这是我使用的代码的一部分:

<?php
...
// set userstatus to "active" and delete meta information "activation_key"
// then automatically login
$this->User->id = $id;
$this->User->saveField('modified', date('Y-m-d H:i:s') );
$this->User->saveField('status', 1 );

// $this->User->deleteActivationKey ....

$this->Auth->login($this->User->read());
$this->Session->setFlash(__('Successfully activated account. You are now logged in.'));

$this->User->saveField('last_login', date('Y-m-d H:i:s') );

$this->redirect(array('controller' => 'pages'));
...

到目前为止,这一直有效,直到您想使用 Auth 组件的 user() 函数获取有关登录用户的信息。

我们在 AppController->beforeRender 中使用它,以在应用程序范围内获取用户信息:

$this->set('auth', $this->Auth->user());

但在自动登录操作之后,我收到未定义的索引通知。 (例如,通过在视图中访问 $auth['id'] )。 print_r() 仅显示当前用户的用户名和哈希密码。 如果您手动登录,一切正常。应该是账号激活后自动登录的东西。

会话好像有问题?我究竟做错了什么?


在测试了许多变体后找到了解决方案。

现在适用于:

$user = $this->User->findById($id);
$user = $user['User'];
$this->Auth->login($user);

不知道为什么,我以为我已经尝试过这种方法,但没有成功。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CakePHP 2.0 账户激活后自动登录 的相关文章

  • 在会话 cookie 中存储大量数据会产生什么影响?

    谁能解释一下在会话中存储大量数据的缺点或给我指出一些阅读材料 我也很感兴趣在会话中存储数据和从数据文件读取数据之间是否有任何区别 如果您在会话中存储大量数据 则输入 输出性能会下降 因为会有大量读取 写入 默认情况下 PHP 中的会话存储在
  • 上游太大 - nginx + codeigniter

    我从 Nginx 收到此错误 但似乎无法弄清楚 我正在使用 codeigniter 并使用数据库进行会话 所以我想知道标题怎么会太大 有没有办法检查标题是什么 或者看看我能做些什么来修复这个错误 如果您需要我提供任何conf文件或其他文件
  • 服务器上的 Rails 会话

    我想让一些 Rails 应用程序在不同的服务器上共享同一个会话 我可以在同一服务器内完成此操作 但不知道是否可以在不同服务器上共享 有人已经做过或者知道怎么做吗 Thanks Use the 数据库会话存储 https github com
  • 会话过期时将部分视图重定向到登录页面

    是否有一种简单的方法可以在会话过期后将整个页面 而不仅仅是部分视图 重定向到登录页面 我已尝试以下解决方案 但无法使其工作 Net MVC Partial View 会话过期时加载登录页面 https stackoverflow com q
  • 性能:cakephp-mysql 中的 UUID 与自动递增

    我正在搜索 cakePHP 生成的 UUID 32 个字符长 是否比自动增量在性能上更快 插入和选择操作的比较 我应该使用 cakePHP 生成的 UUID 还是使用 MySQL 的简单自动增量生成的 UUID 这是我发现的一个案例研究 但
  • Tomcat:Java 静态变量作用域、应用程序范围还是会话范围?

    java 静态变量是否在使用相同 web 应用程序的所有会话之间共享 或者每个会话都有自己的静态变量版本吗 换句话说 Tomcat 是为每个会话创建一组新的类 还是为整个 Web 应用程序创建一组新的类 Tomcat 创建一个ClassLo
  • CakePHP Auth 组件使用 $this->Auth->login() 时未登录;

    我是 cakePHP 的新手 我已经阅读了他们的文档 并且正在遵循他们的简单身份验证示例 我还广泛搜索 包括本网站上的答案 来寻找我的问题的答案 我正在使用 cakePHP 2 0 我的 UsersController 的登录功能如下所示
  • 具有“日期之间”的 CakePHP 模型

    我有一个很大的数据集 超过十亿行 数据在数据库中按日期分区 因此 我的查询工具必须在每个查询上指定一个 SQL Between 子句 否则它将必须扫描每个分区 而且 它会在返回之前超时 所以 我的问题是 分区的数据库中的字段是日期 使用 C
  • PHP中如何有效防止跨站请求伪造(CSRF)

    我正在努力阻止CSRF https www owasp org index php Cross Site Request Forgery CSRF in php questions tagged php通过以下方式 A SESSION to
  • 未定义的变量:$_SESSION

    我越来越E NOTICE当核心 CakePHP 文件尝试引用从未设置或未设置的会话时 会出现错误 cake libs cake session php line 372 function read name null if is null
  • PHP Session Id 在页面之间发生变化

    我有一个问题 我在 2 个页面之间丢失了 PHP 会话 session start 包含在一个名为 session inc php 的文件中 该文件包含在每个需要设置会话的页面中 这适用于网站上除一个特定页面 member profile
  • Roslyn,通过 hostObject 传递值

    我正在尝试通过 hostObject 发送一个类 但显然它不想工作 using Roslyn Compilers using Roslyn Compilers CSharp using Roslyn Scripting using Rosl
  • 动态创建的数据源未传递到 CakePHP 中的关联模型

    我有一个模型 汽车 该汽车有几个关联的模型 让我们考虑其中一个与hasMany关系 轮 在我的 CarsController 中 我使用以下代码动态生成数据源 schemaName this gt Session gt read User
  • PHP7.1上读取会话数据失败

    分享一个我遇到的问题 现已解决 在我的开发机器上 我使用 PHP 运行 IIS 我升级到 PHP7 突然我的代码不再工作 返回此错误 session start 读取会话数据失败 用户 路径 C WINDOWS temp 看起来像是权限问题
  • Rails 中的会话、子域和 authlogic 问题

    我有一个带有 authlogic 身份验证的 Rails 应用程序和一个使用 subdomain fu 构建的 username domain com 结构 但是当从domain com转到username domain com时 我的会话
  • 会话销毁后如何使 viewscoped beans/viewmap 生存(使用客户端保存)?

    我在用着Myfaces 2 2 具有客户端状态保存功能 我看到 ViewScoped beans 和存储在 viewmap 中的数据在用户会话销毁后丢失 我开始知道 不确定这是否正确 这是预期的行为 但是在会话销毁后避免查看过期异常的方法是
  • 如何使用python登录页面,该页面需要服务器在第一次请求时响应会话ID?

    我正在编写一个脚本来登录某个网页 我使用 request 和 request session 模块来实现此目的 在使用登录参数的第一个请求时 服务器响应一个会话 ID 如何设置该会话 ID 以进一步登录到同一页面 url some url
  • 生成 Flask 中使用的签名会话 cookie 值

    我正在用另一个需要将项目注入会话的 Flask 服务器代理 Flask 服务器 两台服务器具有相同的密钥 因此加密签名将相同 当使用 Flask 和会话时 http 响应包含一个 Set Cookie 标头session text 其中 t
  • 如何防止 CakePHP 中重复表单提交?

    我发现 CakePHP 中的安全组件通过将令牌作为隐藏值添加到表单中来帮助防止 CSRF 我想知道是否有办法防止使用此组件或其他组件 帮助器重复表单提交 在之前的项目中 我使用了保存在会话中的唯一哈希值 该哈希值会在提交时读取并删除 重复提
  • asp.net cookie、身份验证和会话超时

    我有一个使用表单身份验证的 asp net 网站 我在会话中保留一些信息 例如用户名 用户 ID 电子邮件等 我通过在身份验证 cookie 上设置较长的到期日期来允许用户保持登录网站的状态 因此 当用户仍处于身份验证状态时 会话过期的情况

随机推荐

  • 如何将字符串转换为 html 颜色代码哈希?

    我想将字符串表示为任意 html 颜色 Example 巴拉巴拉 FFCC00 foo foo 2 565656 实际颜色代码是什么并不重要 只要它是有效的十六进制 HTML 颜色代码并且整个光谱都能得到很好的表示即可 我想第一步是对字符串
  • Qt:带有关闭、最小化和帮助按钮的 QMainWindow

    如果我有一个继承 QMainWindow 的类 并且我希望它只有按钮 窗口栏中的关闭 最小化和帮助 我应该如何操作 如果我使用此代码作为窗口标志 setWindowFlags Qt Window Qt WindowContextHelpBu
  • Android:在Webview上播放youtube视频

    我在 WebView 上播放 YouTube 视频时遇到问题 我整天都在阅读有关如何执行此操作的问题和答案 但它不起作用 我已经设置了清单这是我正在使用的代码 mWebview setWebViewClient new WebViewCli
  • iPhone,没有垃圾收集:MonoTouch 怎么样?

    众所周知Apple 并未在 iPhone 上提供自动垃圾收集功能以延长电池寿命 https stackoverflow com questions 416108 is garbage collection supported for iph
  • 在 Woocommerce 3 中的客户电子邮件通知上设置跟踪号码链接

    我已经设法将其整合在一起 现在我正在尝试将输入到自定义字段 保存到订单 中的数字链接到订单电子邮件中 这是代码 create the metabox add action add meta boxes bdev add postnord m
  • 从向量中的每个字符串中提取前 N 个字符

    我有一个字符串向量 v string lt c abc beb lol heh hah 有没有办法从向量中提取前 N 个元素 所以在上面如果我想提取前 2 个 我会得到 ab be lo he ha 或者我必须做一个循环并使用substr功
  • readonly =“true”和readonly =“readonly”之间有什么区别?

    有什么区别
  • MediaCodec 从 RTSP 解码 AAC 音频块并播放

    我正在接收包含由以下编码的 aac 音频块的 rtp 数据包libvo aacenc 44100hz 128kbps 2ch 来自 FFServer 实例 我正在尝试在 Android 中使用 MediaCodec 对它们进行一一解码 并在
  • Java 执行流程 - 重写的方法比构造函数先执行

    我在同一个 java 文件中有以下代码 import javax swing SwingUtilities import java io File public class MainClass2 public static void mai
  • 为什么在 Python 中我需要复制类实例而不是其他对象类型?

    当我需要在 Python 中显式复制一个对象以便在不改变原始对象的情况下进行更改时 我有点困惑 这Python 文档页面 https docs python org 3 4 library copy html没有太多细节 只是说 赋值语句不
  • 无法初始化视频获取属性(Matlab 中的 videoreader)

    我可以在 Windows 中使用 Matlab 读取一个视频 但无法在 ubuntu 14 04 中从 Matlab 读取相同的视频 错误如下 gt gt aa VideoReader s12 32 xvid avi Error using
  • Flutter插件开发未解决参考:io

    这是我第一次尝试创建一个flutter插件 我从android studio创建了flutter插件项目并且运行良好 当我尝试为android添加平台特定代码时我遇到了一些问题 在同一个项目中平台特定代码编辑几乎死了 没有掉毛 我在andr
  • .NET 对象大小限制

    NET 中的对象似乎有 2 GB 的大小限制 如何在 64 位下运行 Fsi exe https stackoverflow com questions 4284381 how to run fsi exe in 64 bits 有解决这个
  • 如何对 WCF 服务进行单元测试?

    我们有一大堆 DLL 可以让我们访问数据库以及其他应用程序和服务 我们用一个薄的 WCF 服务层包装了这些 DLL 然后我们的客户端可以使用它 我有点不确定如何编写仅测试 WCF 服务层的单元测试 我应该只为 DLL 编写单元测试 为 WC
  • 写入node-fetch返回的流

    自述文件包含以下代码作为编写获取的文件的示例 fetch https assets cdn github com images modules logos page Octocat png then res gt const dest fs
  • 连续获取 Paramiko SSH exec_command 的输出

    我正在使用 paramiko 在远程计算机上通过 ssh 执行长时间运行的 python 脚本 工作起来就像一个魅力 到目前为止没有任何问题 不幸的是 stdout 分别是stderr 仅在脚本完成后显示 但是 由于执行时间的原因 我更喜欢
  • 在父进程中捕获子进程异常

    我正在创建多个单独运行爬虫的进程 我想确保如果爬虫进程中有一些异常 我能够在父进程中捕获它 下面是进程创建代码 try caching process Process target run crawler process args Conf
  • 停止执行 ASP.NET 应用程序

    在我的 Application Start 方法中 当某些条件不满足时 如何停止 ASP NET 应用程序的执行 抛出异常似乎不起作用 我认为这是不可能的 即使您可以 中止 启动 下次尝试从该站点访问 URL 时也会尝试再次启动它 也许静态
  • Vue 中的 TreeView 未正确渲染子文件夹内容

    我正在尝试建立一个TreeView在 Vue 中从头开始 This https codesandbox io s optimistic wilbur 8dreq到目前为止是我的代码 我遇到的第一个问题是子文件夹的内容 例如child fol
  • CakePHP 2.0 账户激活后自动登录

    我正在研究我们新项目的用户管理组件 计划是 用户使用最少量的帐户数据 用户名 密码 电子邮件 在页面上注册 用户收到一封电子邮件 其中包含用于激活帐户的激活链接 用户点击链接并激活他的帐户 系统在激活后自动登录用户 并将其重定向到带有帐户信