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上查看。