solution10 / auth
强大且极其灵活的认证
v1.3.1
2017-03-30 21:00 UTC
Requires
- php: >= 5.4
- ircmaxell/password-compat: ^1.0
- solution10/collection: ^1.0
- solution10/managed-instance: ^1.0
Requires (Dev)
- phpunit/phpunit: ^4.1
- squizlabs/php_codesniffer: ^1.0
This package is not auto-updated.
Last update: 2024-09-11 12:41:41 UTC
README
强大且极其灵活的认证
关键特性
- 框架无关:
可以与任何框架以及任何 ORM / 数据库层协同工作。通过实现两个类来集成您选择的方法,Auth 将完成其余工作。
了解更多关于集成 - 多个实例:
没有静态或糟糕的全局作用域。每个认证实例都是完全自包含的,并且可以与完全不同的后端和会话处理器通信。
了解更多关于多个实例 - 强大的权限:
基于包的权限允许您定义广泛的访问控制组,并且重写允许您根据每个用户允许/拒绝权限。
了解更多关于权限
安装
安装与预期一样简单,只需通过 Composer 需求即可。
{ "require": { "solution10/auth": "^1.2" } }
注意:Auth 完全不提供存储功能(没有数据库层 / 访问)。您需要通过实现 StorageDelegate 来提供此功能。这种做法可能一开始看起来有些奇怪,但它允许您完全控制数据检索的逻辑,同时 Auth 处理实际的机制。 了解更多关于集成
基本用法
您的第一步应该是完成集成指南中的所有内容,但那并不构成一个性感的演示,所以我们假设您已经完成了!
假设我已经完全实现了一个名为 "PDOStorageDelegate" 的 StorageDelegate。
// The storage delegate handles reading/writing User data from // your data store. That could be a database, REST service, whatever. $storageDelegate = new PDOStorageDelegate(); // The session delegate handles maintaining state between // page loads. Essentially, it's a front to the $_SESSION array, // but if you do it different, you can re-implement! $sessionDelegate = new Solution10\Auth\Driver\Session(); // Fire up a new instance called "MyAuth" $auth = new Solution10\Auth\Auth('MyAuth', $sessionDelegate, $storageDelegate); // Play with some API methods: if ($auth->loggedIn()) { echo 'Hi, '.$auth->user()->username.', welcome to the site!'; }
如您所注意到的,我们为 auth 实例命名。这为我们提供了一个在以后引用它们的方法。更多关于这一点请参阅实例章节。
登录
if ($auth->login($username, $password)) { echo 'User was logged in!'; } else { echo 'Please check your username and password.'; }
登出
$auth->logout();
检查登录状态
if ($auth->loggedIn())) { echo "You're logged in!"; } else { echo "You are not logged in :("; }
获取当前用户
$user = $auth->user();
强制登录
这应该非常小心使用,它将允许您在不输入密码的情况下登录用户。这可能在注册后非常有用。
// The $user object needs to be a class that implements the // Solution10\Auth\UserRepresentation interface. // It's a tiny interface, but it just gives us enough info to // do our work. $user = new UserRepresentationInstance(); $user->forceLogin($user);
您可以在集成指南中了解更多关于用户表示。
PHP 要求
- PHP >= 5.4
文档
用户指南:请在此处查看 GitHub 上的Wiki。