DX Auth User Guide Version 1.0 参考手册
由于原来的那个打开太慢,在网上又找了一个,这里发给大家。RBAC是很重要的内容,希望大家多参与讨论~
翻译: Fanbin
DX Auth User Guide Version 1.0 参考手册
原文:http://dexcell.shinsengumiteam.com/dx_auth/index.html
欢迎使用 DX Auth
DX Auth 是一个CodeIgniter(PHP框架)的身份验证库。她的目标是是你容易地实现安全,容易的在你的项目中使用身份验证库,同时给你选择简单验证系统或全能验证系统的灵活性。
DX Auth 是以国际化思路构建的,所以所有的字符串都是在语言文件中可用的。(除了捆绑的示例,因为那时你的代码而不是库)。
它由 Jason Ashdown 基于 CL Auth 0.2.5 开发。
DX Auth的特色有哪些?
基本验证(登录,注销,注册,修改密码)。
记住我。
使用用户名或E-mail或两者登录(依赖于你的配置)。
忘记密码。
踢人。
最后登录的IP地址和时间(可选)。
E-mail 激活(可选)。
用户档案(可选)。
基于角色(管理员,用户,版主,等)。也支持继承(可选)。
基于URI和角色限制页面访问(可选)。
为每个角色自定义权限(可选)。
登录尝试(可选)。你可以使用它在指定的尝试次数后显示验证码以阻止机器人。
事件(例如:你可以自己加上在用户激活后发送欢迎站内信的代码)。
验证码(可选,自带的和reCAPTICHA均可用)。
简单的管理员面板(这样你可以对它自定义,把它包含进你自己的管理员面板,或者如果你不需要就删了它)。
多数特性是可选的,意味着你可以在配置文件里把它关掉,删掉,或放着不用它。
CL Auth 0.2.5 后的更新
如果你以前用过 CL Auth,你或许想知道在 CL Auth 0.2.5 后有些什么更新。
Bug 修正。
添加、修改函数
修改了代码结构
组改为角色
直接与 CI 绑定的 session 兼容
为国际化添加语言文件
所有的函数命名以 “lower_case” 风格取代了“camelCase”风格。
源代码书写遵循 CI 用户手册规范
添加源代码注释,这样你可以容易地跟进。
带有详细解释的 CodeIgniter 风格用户手册。
还有其他一些我忘了的鸟...
看起来挺好,从哪儿开始呢?请阅读“开始”或者看示例。
DX Auth 在 CI 1.7.0 下测试通过,但在以前版本中应该也可以使用。
CodeIgniter DX Auth 插件安装
原文:http://dexcell.shinsengumiteam.com/dx_auth/installation/index.html
下载 DX Auth
点此下载 官方页面:http://dexcell.shinsengumiteam.com/dx ... stallation/downloads.html
安装说明
安装带有示例的 DX Auth
[*]将压缩包解压。
[*]复制 captcha 文件夹到你的 CI 文件夹。让 Web 服务器对此文件夹可写。
[*]复制 application 文件夹到你的 CI application 文件夹。
[*]将 DX Auth 的数据库结构安装到你的数据库。
[*]打开 application/config/config.php。修改 $config['sess_use_database'] 为 TRUE。
只安装 DX Auth 库
[*]将压缩包解压。
[*]复制 captcha 文件夹到你的 CI 文件夹。让 Web 服务器对此文件夹可写。
[*]复制 application/plugins/ 文件夹到你的 CI application/plugins/ 文件夹。
[*]复制 application/config/ 文件夹到你的 CI application/config/ 文件夹。
[*]复制 application/libraries/ 文件夹到你的 CI application/libraries/ 文件夹。
[*]复制 application/helpers/ 文件夹到你的 CI application/helpers/ 文件夹。
[*]复制 application/models/ 文件夹到你的 CI application/models/ 文件夹。
[*]复制 application/language/ 文件夹到你的 CI application/language/ 文件夹。
[*]将 DX Auth 的数据库结构安装到你的数据库。
[*] 打开 application/config/config.php。修改 $config['sess_use_database'] 为 TRUE。
搞定!
如果你初学 DX Auth,请阅读用户手册的开始章节以开始使用 DX Auth。
数据库结构
下面是 DX Auth 库所需的数据库结构,或者你也可以在下载 zip 文件并解压后从 'schema.sql' 中找到它。
这将安装:
[*]名为 'ci_sessions' 的 CI Session 表。如果在你的数据库中已经有这个表你可以删掉 'ci_session' 的安装脚本。
[*]DX Auth 库表。
[*]具有管理员角色的用户,用户名:admin,密码:hello。
[*]具有用户角色的用户,用户名:user,密码:hello。
[*]role_table 中的默认角色(用户和管理员)。
CodeIgniter DX Auth 插件用户手册 - 开始
开始了
在你跟随示例安装并设置好 DX Auth 配置文件之后,你或许只想看看 DX Auth 捆绑的示例运行情况,而不是先阅读这个简单的示例。
要玩玩这个你可以打开:
[*]{你的 CI URL}/auth/login/ 登录。
[*]{你的 CI URL}/auth/logout/ 退出。
[*]{你的 CI URL}/auth/register/ 注册。
[*]{你的 CI URL}/auth/register_recaptcha/ 使用 reCAPTCHA 注册。
[*]{你的 CI URL}/auth/forgot_password/ 使用忘记密码功能。
[*]{你的 CI URL}/auth/change_password/ 在你登录后修改密码。
[*]{你的 CI URL}/auth/cancel_account/ 在你登录后把帐号自杀。
要访问管理员控制面板(你需要以管理员身份登录或者你的用户角色已经授权给了权限表):
[*]{你的 CI URL}/backend/users/ 管理用户。
[*]{你的 CI URL}/backend/unactivated_users/ 管理未激活用户
[*]{你的 CI URL}/backend/roles/ 管理角色。
[*]{你的 CI URL}/backend/uri_permissions/ 管理URI权限。
[*]{你的 CI URL}/backend/custom_permissions/ 管理自定义权限。
通常,{你的 CI URL} 就是在你 CI 配置文件中 'base_url' 和 'index_page' 项的组合。
CodeIgniter DX Auth 插件用户手册 - 函数参考
原文:http://dexcell.shinsengumiteam.com/dx_auth/general/functions.html
主要函数
下面是你可以在 DX Auth 库中可以使用的函数列表。
login($login, $password, $remember = TRUE)
登录用户。如果登录成功,返回 TRUE ,否则 FALSE。
$login 是用户名或E-mail地址或者两者均可,取决于 dx_auth 配置文件中的设置。
$password 是用户密码。
$remember 是使用户下次打开网站时仍记住用户(“记住登录”)。
如果函数返回 FALSE 你可以使用 get_auth_error() 函数返回一错误字符串。
logout()
注销用户。
register($username, $password,$email)
注册新用户。如果注册成功,返回新用户记录,否则返回 FALSE。
如果 dx_auth 配置文件中 DX_email_activation 的值为 TRUE ,那么它将发送E-mail验证,并要求用户验证帐号。
如果 dx_auth 配置文件中 DX_email_activation 值为 FALSE 且 DX_email_account_details 值为 TRUE ,那么它将通过E-mail发送用户帐号信息。
此函数将自动设置新用户角色ID ( role_id )为 1,所以你需要确保有 id = 1 的记录在角色表中,它的name字段值是类似“普通用户(normal user)”这样的。
forgot_password($login)
发送一封带有密钥的邮件以重置他们的密码。如果成功则返回 TRUE, 否则返回 FALSE。
$login 是用户名或E-mail。
由于密码是单向加密的,不可能得到原值。这就是我们需要重置它的原因。
如果函数返回 FALSE ,你可以使用 get_auth_error() 函数返回
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
-- --------------------------------------------------------
--
-- Table structure for table `ci_sessions`
--
CREATE TABLE IF NOT EXISTS `ci_sessions` (
`session_id` varchar(40) collate utf8_bin NOT NULL default '0',
`ip_address` varchar(16) collate utf8_bin NOT NULL default '0',
`user_agent` varchar(150) collate utf8_bin NOT NULL,
`last_activity` int(10) unsigned NOT NULL default '0',
`user_data` text collate utf8_bin NOT NULL,
PRIMARY KEY (`session_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- --------------------------------------------------------
--
-- Table structure for table `login_attempts`
--
CREATE TABLE IF NOT EXISTS `login_attempts` (
`id` int(11) NOT NULL auto_increment,
`ip_address` varchar(40) collate utf8_bin NOT NULL,
`time` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Table structure for table `roles`
--
CREATE TABLE IF NOT EXISTS `roles` (
`id` int(11) NOT NULL auto_increment,
`parent_id` int(11) NOT NULL default '0',
`name` varchar(30) collate utf8_bin NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=3 ;
--
-- Dumping data for table `roles`
--
INSERT INTO `roles` (`id`, `parent_id`, `name`) VALUES
(1, 0, 'User'),
(2, 0, 'Admin');
-- --------------------------------------------------------
--
-- Table structure for table `permissions`
--
CREATE TABLE IF NOT EXISTS `permissions` (
`id` int(11) NOT NULL auto_increment,
`role_id` int(11) NOT NULL,
`data` text collate utf8_bin,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ;
-- --------------------------------------------------------
--
-- Table structure for table `users`
--
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL auto_increment,
`role_id` int(11) NOT NULL default '1',
`username` varchar(25) collate utf8_bin NOT NULL,
`password` varchar(34) collate utf8_bin NOT NULL,
`email` varchar(100) collate utf8_bin NOT NULL,
`banned` tinyint(1) NOT NULL default '0',
`ban_reason` varchar(255) collate utf8_bin default NULL,
`newpass` varchar(34) collate utf8_bin default NULL,
`newpass_key` varchar(32) collate utf8_bin default NULL,
`newpass_time` datetime default NULL,
`last_ip` varchar(40) collate utf8_bin NOT NULL,
`last_login` datetime NOT NULL default '0000-00-00 00:00:00',
`created` datetime NOT NULL default '0000-00-00 00:00:00',
`modified` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=3 ;
--
-- Dumping data for table `users`
--
INSERT INTO `users` (`id`, `role_id`, `username`, `password`, `email`, `banned`, `ban_reason`, `newpass`, `newpass_key`, `newpass_time`, `last_ip`, `last_login`, `created`, `modified`) VALUES
(1, 2, 'admin', '$1$i75.Do4.$ROPRZjZzDx/JjqeVtaJLW.', 'admin@localhost.com', 0, NULL, NULL, NULL, NULL, '127.0.0.1', '2008-11-30 04:56:38', '2008-11-30 04:56:32', '2008-11-30 04:56:38'),
(2, 1, 'user', '$1$bO..IR4.$CxjJBjKJ5QW2/BaYKDS7f.', 'user@localhost.com', 0, NULL, NULL, NULL, NULL, '127.0.0.1', '2008-12-01 14:04:14', '2008-12-01 14:01:53', '2008-12-01 14:04:14');
-- --------------------------------------------------------
--
-- Table structure for table `user_autologin`
--
CREATE TABLE IF NOT EXISTS `user_autologin` (
`key_id` char(32) collate utf8_bin NOT NULL,
`user_id` mediumint(8) NOT NULL default '0',
`user_agent` varchar(150) collate utf8_bin NOT NULL,
`last_ip` varchar(40) collate utf8_bin NOT NULL,
`last_login` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`key_id`,`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
-- --------------------------------------------------------
--
-- Table structure for table `user_profile`
--
CREATE TABLE IF NOT EXISTS `user_profile` (
`id` int(11) NOT NULL auto_increment,
`user_id` int(11) NOT NULL,
`country` varchar(20) collate utf8_bin default NULL,
`website` varchar(255) collate utf8_bin default NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=2 ;
--
-- Dumping data for table `user_profile`
--
INSERT INTO `user_profile` (`id`, `user_id`, `country`, `website`) VALUES
(1, 1, NULL, NULL);
-- --------------------------------------------------------
--
-- Table structure for table `user_temp`
--
CREATE TABLE IF NOT EXISTS `user_temp` (
`id` int(11) NOT NULL auto_increment,
`username` varchar(255) collate utf8_bin NOT NULL,
`password` varchar(34) collate utf8_bin NOT NULL,
`email` varchar(100) collate utf8_bin NOT NULL,
`activation_key` varchar(50) collate utf8_bin NOT NULL,
`last_ip` varchar(40) collate utf8_bin NOT NULL,
`created` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin AUTO_INCREMENT=1 ; 但是,DX_Auth没有下载下来,谁有给传一下呗 能不能做一个示例给大家讲讲怎么用? 强烈要求做一个视频教程给大家讲一讲 不能正确解压啊 怎么回事呢???? 回复 6# phelps_liu
你用的什么解压缩工具,压缩包扩展名是?我估计是 Windows 下解压不了 Linux 下压缩的压缩包吧。 就是个ZIP包 ,不是Linux的包吧?? 再说Linux下压的包RAR可以解压了 解压出来,访问/auth/login/找不到页面啊,安装带有示例的 DX Auth貌似跟下面没有示例的没什么区别啊,怎么搞?
页:
[1]
2