chatbox / signup
验证提供者
Requires
- php: >=5.4
- chatbox/box: dev-master
- chatbox/migrate: dev-master
- chatbox/phputil: dev-master
- chatbox/simple-kvs: dev-master
This package is not auto-updated.
Last update: 2024-09-28 18:21:13 UTC
README
构成
作为基本用户对象工厂工作。
-
[邀请] 用户数据的新注册
-
[提醒] 用户认证信息重置
-
[序列化器] 用户信息的持久化。会话或令牌等
-
[加载器] 加载持久化用户信息
-
没有会话的抽象化。
工作日志
会话持久化完成
继续令牌持久化
pimple的设置和获取
设置
$signUp = new SignUp;
认证
$passwordAuth = $signUp->authProvider("password");
$user = $passwordAuth->getUser($cred);
邀请
创建用户数据
$inv = $signUp->newInvitation($mail,$data);
$inv->publish();
$inv = $signUp->loadInvitation($key);
$email = $inv->getMailAdress();
$hoge = $inv->get("hoge");//get $data["hoge"]
$user = $signUp->accept($inv);
$passwordAuth->bind($user,$cred);
持久化
$serializer = $signUp->serializeProvider("session");
$key = $serializer->save($user); //セッションエントリキーやトークンなど
$user = $serializer->load($key);
$serializer->reset($user);
提醒
$reminder = new Reminder($user);
$reminder->publish();
$reminder = Reminder::load($key);
$signUp->accept($reminder)
优点
在保持用户对象等应用程序逻辑部分独立性的同时,还处理令牌、登录尝试次数限制、会话嵌入等操作。
主要功能
- 会话处理:通过插入会话管理器来处理会话处理
- 登录尝试次数限制:自动记录登录尝试次数等
- 社交登录功能:将社交帐户与用户ID关联(hybridAuth的包装器)。
kbec对象接口
认证
从会话中读取登录状态以获取用户对象。
登录
从http参数中获取登录信息,验证并生成用户对象,然后将其保存到会话中。
认证处理是...
- 从POST或SESSION接收认证信息
- 将认证信息转换为用户对象生成用PK。 - 从用户标识符生成用户对象。
认证信息
− 令牌 − 社交ID − ID和密码 − 会话嵌入键
持久化处理
− 用户拥有可重复使用的持续认证信息,因此不需要特殊处理(再次登录形式) - 每次发送认证信息的处理很麻烦,因此将键嵌入会话或Cookie中,以便可以省略登录。
用法
$wap = new \Wap\Wap($credLoaders,$userFactory);
// or use configuration
$wap = \Wap\Wap::forge();
$user = $wap->login();
// to seiralize
$wap->setSession();
令牌处理
由于每次都直接交换认证信息很麻烦,因此产生的令牌类处理。
− 第一次进行沉重的认证流程。 - 认证流程成功后,发行令牌并将令牌信息发送回。 - 使用令牌进行第二次简化的认证处理。 - 令牌每次使用时都会更新使用日期。
− 如果发送的令牌已过期,但在令牌重新发行期内,则发送新的令牌。
$wap = new \Wap\Wap();
$user = $wap->login();//重た目の認証
if($wap->getLoginType($user) === $socialCredLoader){
$token = $wap->publishToken()
$response->setToken($token);
}else if($wap->getLoginType($user) === $socialCredLoader && $wap($expired)){
$response->setToken($wap->rePublishToken);
}
// to seiralize
$wap->setSession();
用户界面
findByPk($pk) : 从主键生成对象。
getId : 标识符 checkCred : 决定认证标识符的检查方法 getCred : 返回密码重置时应返回的信息汇总 isLoginable : 决定是否可登录。通常始终为true,但在实现ban或activated时可能不是。
Sentry接口
基于cred的登录和基于user对象的登录
登录处理不仅仅是用户对象的工厂,还包括密码重置字段和登录尝试日志的删除。
此外,Sentry还包括用户find条目、logout条目和使用用户对象进行的check机制
检查
在像社交游戏一样,在敲击status等数据API时,查看是认证用户(自己的)的信息还是他人的信息时使用。
考虑认证功能
− 用户对象工厂 - 尝试次数控制 - cred信息