wscore / auth
0.4.1
2020-11-15 00:24 UTC
Requires (Dev)
- phpunit/phpunit: ^8.0
This package is not auto-updated.
Last update: 2024-09-14 19:47:32 UTC
README
一个简单的认证包。
许可证
MIT 许可证
PSR
PSR-1, PSR-2, 和 PSR-4。
安装
composer require "wscore/auth: ^0.3"
入门
Auth
需要一个实现 UserProviderInterface
对象,以访问用户信息。
$auth = new Auth(new UserProvider);
要认证一个用户,从登录表单中获取用户-id ($id
) 和用户密码 ($pw
),
if ($auth->login($id, $pw)) { echo 'login success!'; }
以便稍后检查登录,
$auth->isLogin();
您可以检索登录信息,例如;
$user = $auth->getLoginUser(); // login user entity returned by UserProvider's getUserInfo() method. $mail = $auth->getLoginId(); // get login user's id. maybe an email?
强制登录
forceLogin
方法允许用户在不输入密码的情况下登录,例如系统管理。
$auth->forceLogin($id);
然后,您可以检查登录是否为强制登录。
$auth->isLoginBy(Auth::BY_FORCED); // check for login method.
UserProvider
Auth
需要一个实现 UserProviderInterface
的用户提供者对象。该接口有 4 个 API,它们是:
getUserById($id)
:用于获取$id
(登录用户)的用户实体。getUserByIdAndPw($id, $pw)
:用于获取$id
和有效$pw
的用户实体。getUserType()
:用于获取用于标识用户提供者的键字符串。
记住我选项
要使用记住我选项,使用 setRememberMe
方法,如下所示
$auth = new Auth(...); $auth->setRememberMe(new MyRememberMe());
$remember
对象实现RememberMeInterface
,RememberCookie
对象,
然后,在登录时,当 login
时提供第三个参数,
$auth->login($id, $pw, true);
以将 $id
和一个记住我令牌保存到 cookie 中,如果登录成功。