narendravaghela / cakephp-remember-me
CakePHP的RememberMe插件
v1.2
2016-10-26 06:49 UTC
Requires
- php: >=5.5.9
- cakephp/cakephp: >=3.1.0 <4.0
Requires (Dev)
- cakephp/cakephp-codesniffer: dev-master
- phpunit/phpunit: 4.1.*
This package is auto-updated.
Last update: 2024-09-27 03:01:56 UTC
README
此插件为CakePHP应用程序提供了一种基本功能,用于将用户数据存储在Cookies中,以便登录并记住特定浏览器中的用户。
阅读这篇博客文章以获取详细示例。
要求
此插件有以下要求
- 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上提交问题。