fx/hyperf-http-auth
Composer 安装命令:
composer require fx/hyperf-http-auth
包简介
use auth in hyperf as in laravel
README 文档
README
-
仿照 laravel auth 组件, 抽离出其中的核心逻辑, 形成当前扩展包
-
将 UserProvider 与 Guard 抽离出去, 形成单独扩展包, 方便扩展, 默认使用以下组合
-
fx/eloquent-provider 使用 Eloquent ORM ;
-
fx/session-guard 使用 session 作为 guard ;
-
-
2.0 版本开始, 需手动安装
fx/eloquent-provider和fx/session-guard
使用
安装
composer require fx/hyperf-http-auth:"^1.1"
发布配置文件
php bin/hyperf.php vendor:publish fx/hyperf-http-auth
创建用户 model 并修改为以下配置
<?php declare (strict_types=1); namespace App\Model; use Fx\HyperfHttpAuth\Contract\Authenticatable; use Hyperf\DbConnection\Model\Model; class User extends Model implements Authenticatable { use \Fx\HyperfHttpAuth\Authenticatable; }
配置依赖扩展
fx/session-guard依赖hyperf/session需要正确配置其相关内容 官方文档
在 controller 中使用
<?php
declare(strict_types=1);
namespace App\Controller;
use App\Model\User;
use Fx\HyperfHttpAuth\Contract\HttpAuthContract;
use Hyperf\Di\Annotation\Inject;
class IndexController extends AbstractController
{
/**
* @Inject()
* @var HttpAuthContract
*/
protected $auth;
public function index()
{
return $this->data();
}
/**
* 登录
*/
public function login()
{
/** 方式 1 */
// 等价于 auth()->login(User::first());
$this->auth->login(User::first());
/** 方式 2 */
// 等价于 auth()->attempt(['email' => 'xxx', 'password' => '123456']);
$this->auth->attempt(['email' => 'xxx', 'password' => '123456']);
return $this->data();
}
/**
* 登出
*/
public function logout()
{
// 等价于 auth()->logout();
$this->auth->logout();
return $this->data();
}
protected function data()
{
return [
'user' => auth()->user(),
'is_login' => auth()->check(),
];
}
}
扩展 UserProvider
-
实现
Fx\HyperfHttpAuth\Contract\UserProvider这个抽象类 -
添加
Fx\HyperfHttpAuth\Annotation\UserProviderAnnotation类注解, 该注解接收一个参数, 为该驱动的名称 -
可参考: fx/eloquent-provider
扩展 Guard
-
实现
Fx\HyperfHttpAuth\Contract\StatefulGuard这个抽象类 -
添加
Fx\HyperfHttpAuth\Annotation\GuardAnnotation类注解, 该注解接收一个参数, 为该驱动的名称 -
可参考: fx/session-guard
更新说明
-
2020-05-12: 修复 session guard 中引用 cookie 的问题, 该问题导致登录时无法使用
记住我 -
2019-12-26: 添加
Fx\HyperfHttpAuth\AuthenticateMiddleware中间件, 未认证通过会抛出Fx\HyperfHttpAuth\Exception\AuthenticationException -
2019-12-27: 添加自动化测试
-
2020-01-07: 修复:
Fx\HyperfHttpAuth\Contract\Guard::name(), 更新自动化测试 -
2020-08-17: 修复收集器无法收集到自定义的注解, 该问题会导致
Guard和UserProvider无法正常使用
fx/hyperf-http-auth 适用场景与选型建议
fx/hyperf-http-auth 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 246 次下载、GitHub Stars 达 25, 最近一次更新时间为 2019 年 12 月 25 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「php」 「hyperf」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 fx/hyperf-http-auth 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 fx/hyperf-http-auth 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 fx/hyperf-http-auth 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
统计信息
- 总下载量: 246
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 25
- 点击次数: 1
- 依赖项目数: 2
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2019-12-25