wscore/auth

一个简单的认证包。

0.4.1 2020-11-15 00:24 UTC

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 中,如果登录成功。