dan33b/cakephp-remember-me

CakePHP 的 RememberMe 插件

安装次数: 5

依赖者: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 5

类型:cakephp-plugin

v1.2 2016-10-26 06:49 UTC

This package is auto-updated.

Last update: 2024-09-24 21:42:37 UTC


README

Build Status codecov.io

此插件为 CakePHP 应用程序提供基本功能,将用户数据存储在 Cookie 中,以便登录和记住特定浏览器的用户。

阅读此博客文章以获取详细示例。

要求

此插件有以下要求

  • CakePHP 3.0.0 或更高版本。
  • PHP 5.4.16 或更高版本。

安装

您可以使用 composer 将此插件安装到您的 CakePHP 应用程序中。

composer require narendravaghela/cakephp-remember-me

安装后,加载插件

Plugin::load('RememberMe');

或者,您可以使用 shell 命令来加载插件

$ bin/cake plugin load RememberMe

用法

要使用此插件,只需将此插件的 RememberMe 组件加载到您的 AppController 或 UsersController 中。

$this->loadComponent('RememberMe.RememberMe');

您可以可选地传递此组件的配置选项。

$this->loadComponent('RememberMe.RememberMe', [
    'cypherKey' => "17485937564892755682047369192734583655920926", // Random unuqie string to encrypt/decrypt data. If not set, default salt value of the application will be used.
    'cookieName' => "rememberme", // Name of the cookie.
    'period' => '14 Days' // Time period
]);

这里,基本流程应该是这样的

  • 从数据库中查找用户
  • 验证
  • 如果用户选择了“记住我”复选框,则使用此组件存储用户数据。
  • 下次用户(任何用户)访问应用程序时,使用 getRememberedData() 检查存储的数据。
  • 使用 getRememberedData() 返回的数据,与数据库进行验证,如果一切顺利,则创建用户的会话并使其登录。
  • 如果用户手动注销,只需使用 removeRememberedData() 删除 Cookie 中的数据。

记住数据

在您的 login 动作或用户登录应用程序的动作中,使用 rememberData() 函数并传递登录用户的所需数据。

$this->RememberMe->rememberData("data@example.com"); // email address of user being logged in
// or you can use the array as well
$this->RememberMe->rememberData([
  'email' => 'foo@bar.com',
  'someUniqueKey' => 'someuniquevalue'
]);

获取记住的数据

通常,在我们的 beforeFilter() 回调中,我们检查用户是否已登录。在这里,我们可以使用 getRememberedData() 来检索我们在之前的登录操作中存储的数据。如果我们找到一些东西,然后我们可以将其与我们的用户表进行比对,以检查是否有用户。

$isRemembered = $this->RememberMe->getRememberedData();

// code to check this data against database
// set the session
// ...

删除数据

如果您需要删除用户数据,只需调用 removeRememberedData() 并将其从 Cookie 中删除。

就是这样。

报告问题

如果您在 RememberMe 中遇到问题,请在 GitHub 上打开一个问题