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 账户激活后自动登录 的相关文章

  • 何时在 CakePHP 中进行清理

    我读了食谱 第 4 2 节 如果您使用 CakePHP 的 ORM 方法 例如 find 和 save 和正确的数组表示法 即 array field gt value 而不是原始 SQL CakePHP 已经可以保护您免受 SQL 注入
  • 会话超时(session.setMaxInactiveInterval)在 Google Appengine 中不起作用

    我尝试使用以下命令为特定用户设置会话超时session setMaxInactiveInterval 30 60 30分钟 但默认情况下它被分配为 86400 秒 24 小时 也在 Web xml 中尝试过
  • 即使浏览器关闭,如何保持 PHP 会话处于活动状态?

    即使用户不小心关闭了浏览器 如何才能保持用户的会话处于活动状态 例如 Facebook 如果您登录他们的网站并关闭选项卡或浏览器 当您再次打开浏览器并访问 Facebook 时 他们会自动检测活动用户 并且不会将您重定向到登录页面 我怎么做
  • PDO 静默准备失败[重复]

    这个问题在这里已经有答案了 我正在尝试 PHPsession set save handler我想使用 PDO 连接来存储会话数据 我有这个函数作为写入操作的回调 function write id data logger WRITE id
  • PHP - 按后退按钮时 Session_Destroy

    这是我的问题 我有一个名为login php 的登录页面 不包含HTML 代码 当用户正确输入其凭据时 他会被重定向到特定页面 在本例中我们将使用 test php 该页面上的唯一链接会注销当前会话 并将用户返回到index html 我的
  • Flurry 登录 Requests.Session() Python 3

    所以我之前回答过这个问题here https stackoverflow com questions 38670599 flurry scraping using python3 requests session 然而 Flurry 网站上
  • Symfony2:间歇性高响应时间/缓慢 SessionHandlerProxy::read() 完成

    我看到来自 Symfony2 会话管理器组件的非常奇怪的行为 特别是 SessionHandlerProxy read 函数在我的生产环境中有时会非常慢 Symfony Component HttpFoundation Session St
  • 同一域的子页面之间的 PHP 会话

    我有一个域 domain com 其中有多个子页面 这些子页面具有不同的会话 默认情况下 并且我希望其中一些子页面共享一个会话 例如我有domain com section1 staff and domain com section2 st
  • 每次使用会话来获取/设置对象属性

    我尝试搜索这个 但我什至不知道如何用它来搜索 我试图做的是有一个类 每次我访问它来更改它时 我实际上都是从会话中获取和设置值 这是我正在尝试做的事情 到目前为止我所做的事情 public class example public int p
  • Rails 渲染 JSON - 会话丢失?

    我正在尝试对控制器进行一些 Ajax 调用 该控制器以 JSON 进行响应 if session user render json gt Some Data else render json gt You are not logged in
  • 场次抽奖

    有人能解释一下什么是会话扫彩票吗 我已附加 Laravel 框架的默认会话配置文件 问题 1 它说某些会话驱动程序必须manually扫荡他们的 存储位置 有人可以描述这个过程以及为什么会这样吗 必要的 哪些会话驱动程序需要此操作 2 为什
  • OWIN中间件可以使用http会话吗?

    我有一些为 ASP NET 和 SignalR 复制的代码 我决定将其重写为 OWIN 中间件以删除这些重复 一旦我运行它 我注意到HttpContext Current Session为空 并且我没有看到任何会话对象IOwinContex
  • 在 servlet 会话和 java.io.NotSerializedException 中保存对象

    SEVERE IOException while loading persisted sessions java io WriteAbortedException writing aborted java io NotSerializabl
  • NHibernate、数据绑定到 DataGridView、延迟加载和会话管理 - 需要建议

    我的主应用程序窗体 WinForms 有一个 DataGridView 它使用 DataBinding 和 Fluent NHibernate 显示 SQLite 数据库中的数据 该表单在应用程序运行的整个过程中都是打开的 出于性能原因 我
  • 使用 servicestack 如何防止 cookie 添加到响应中?

    我可以在事后删除cookie 方法如下 public override void Configure Funq Container container ResponseFilters Add req res dto gt HttpListe
  • Flask 会话变量

    我正在用 Flask 编写一个小型网络应用程序 当两个用户 在同一网络下 尝试使用应用程序时 我遇到会话变量问题 这是代码 import os from flask import Flask request render template
  • PHP session_regenerate_id 和黑莓浏览器

    问候 我正在开发一个登录系统 并陷入了黑莓浏览器身份验证的困境 他们似乎对 PHP 的 session regenerate id 有问题 有人可以建议替代方案吗 以下是身份验证和登录脚本 UPDATE看来会话一般都不起作用 拿出 sess
  • session_start():无法解码会话对象

    我有时在使用 CodeIgniter 时遇到以下问题 错误 2019 03 05 19 57 26 gt 严重性 警告 gt session start 无法解码会话对象 会话已被销毁 system libraries Session Se
  • 会话cookie太大烧瓶应用程序[重复]

    这个问题在这里已经有答案了 我正在尝试使用会话 本地 加载某些数据 并且它已经工作了一段时间 但是现在我收到以下警告 并且不再加载通过会话加载的数据 b session cookie 太大 该值是 13083 字节 但是 标头需要 44 个
  • CakePHP 与 Lucene

    我正在尝试使用 cakephp 实现 Lucene 并遵循本指南http jamienay com 2010 01 zend search lucene datasource for cakephp http jamienay com 20

随机推荐

  • 如何将字符串转换为 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 账户激活后自动登录

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