delboy1978uk / bone-user
delboy1978uk/user与Bone框架的集成
Requires
- delboy1978uk/bone-doctrine: ^2.0
- delboy1978uk/bone-http: ^2.4
- delboy1978uk/bone-mail: ^v1.2
- delboy1978uk/bone-paseto: ^1.0
- delboy1978uk/form: ^v2.5
- delboy1978uk/user: ^v4.7
- laminas/laminas-diactoros: ^3.3
Requires (Dev)
- codeception/codeception: ^5.1
- codeception/module-asserts: ^3.0
- codeception/module-phpbrowser: ^3.0
- roave/security-advisories: dev-latest
- dev-master
- v2.4.4
- v2.4.3
- v2.4.2
- v2.4.1
- v2.4.0
- v2.3.0
- v2.2.3
- v2.2.2
- v2.2.1
- v2.2.0
- v2.1.0
- v2.0.6
- v2.0.5
- v2.0.4
- v2.0.3
- v2.0.2
- v2.0.1
- v2.0.0
- v1.11.0
- v1.10.1
- v1.10.0
- v1.9.0
- v1.8.1
- v1.8.0
- v1.7.3
- v1.7.2
- v1.7.1
- v1.7.0
- v1.6.6
- v1.6.5
- v1.6.4
- v1.6.3
- v1.6.2
- v1.6.1
- v1.6.0
- v1.5.6
- v1.5.5
- v1.5.4
- v1.5.3
- v1.5.2
- v1.5.1
- v1.5.0
- v1.4.1
- v1.4.0
- v1.3.7
- v1.3.6
- v1.3.5
- v1.3.4
- v1.3.3
- v1.3.2
- v1.3.1
- v1.3.0
- v1.2.10
- v1.2.9
- v1.2.8
- v1.2.7
- v1.2.6
- v1.2.5
- v1.2.4
- v1.2.3
- v1.2.2
- v1.2.1
- v1.2.0
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v1.0.9
- v1.0.8
- v1.0.7
- v1.0.6
- v1.0.5
- v1.0.4
- v1.0.3
- v1.0.1
- v1.0.0
- dev-doctrineattributes
- dev-hotfix/alert-box
- dev-dev-master
This package is auto-updated.
Last update: 2024-09-12 15:45:12 UTC
README
Bone框架的用户注册和登录包
setup
简单地将包添加到Bone的模块配置中
<?php // use statements here use Bone\BoneDoctrine\BoneDoctrinePackage; use Bone\Mail\MailPackage; use Bone\Paseto\PasetoPackage; use Bone\User\BoneUserPackage; use Del\Person\PersonPackage; use Del\UserPackage; return [ 'packages' => [ // packages here (order is important)..., MailPackage::class, BoneDoctrinePackage::class, PasetoPackage::class, PersonPackage::class, UserPackage::class, BoneUserPackage::class, ], // ... ];
然后,使用迁移命令设置数据库
vendor/bin/bone migrant:diff
vendor/bin/bone migrant:migrate
vendor/bin/bone migrant:generate-proxies
快速说明。如果你总是输入vendor/bin/whatever
,为了避免麻烦,请将以下内容添加到你的~/.bashrc
或~.zshrc
或其他shell文件中
export PATH=$PATH:bin:vendor/bin
然后你可以关闭并重新打开你的终端,从现在起你只需输入bone
。同样,对于当前文件夹中bin/
目录中的任何可执行文件。
最后设置阶段是部署公共资源(CSS、JS等)
vendor/bin/bone assets:deploy
(你添加了你的PATH,所以不需要输入vendor/bin/bone
,对吧?)
使用方法
安装后,前往你的网站(默认使用Bone框架Docker开发环境(它是https://awesome.scot/user
)并注册自己为用户。如果使用提供的开发环境,请检查你的MailHog服务器在https://awesome.scot:8025
以查看任何发出的邮件。激活你的账户等!你可以在src/BoneUserPackage.php
中的addRoutes()
部分看到所有可用的端点。
授权中间件
你可以通过添加会话授权中间件Bone\User\Http\Middleware\SessionAuth
来锁定路由,使其仅对已登录用户可用
$sessionAuth = $c->get(SessionAuth::class); // of course there's a use statement above, right? With the full name? $router->map('GET', '/my/route', [MyController::class, 'whateverAction'])->middleware($sessionAuth);
一旦锁定路由,在你的控制器中,你可以通过调用
$user = $request->getAttribute('user');
还有一个名为SessionAuthRedirect
的中间件类,你可以添加它,它将访问者带到登录页面,但一旦登录就会将其重定向回那里。
服务和仓库类
你还可以从你的包容器注册类中获取Del\Service\UserService
以注入到你的类中。这允许你执行各种功能,其中大多数情况都已覆盖,但实际操作中允许你访问数据库仓库并保存数据。用户对象还有一个Del\Entity\Person
,你也可以从容器中获取Del\Person\Service\PersonService
。
/** @var UserService $userService */ $userService = $c->get(UserService::class); /** @var PersonService $personService */ $personService = $c->get(PersonService::class);
视图
显然,你可能不希望使用默认的带有海盗主题的Bone视图!所以请进入你的配置文件夹,覆盖视图。电子邮件模板也在这里。随意修改。
<?php /* * You can override views from vendor packages * You should copy the vendor view folder into your src and tweak from there */ return [ 'views' => [ 'boneuser' => 'src/App/View/bone-user', ], ];
配置设置
如果你想在登录后进入自己的控制器,请创建一个带有键bone-user
的配置,并添加你希望重定向到的URL。你还可以禁用/user/register
端点,并使填写个人资料成为必需。
<?php /* config/bone-user.php */ return [ 'bone-user' => [ 'loginRedirectRoute' => '/admin', 'enableRegistration' => true, 'requireProfile' => false, 'rememberMeCookie' => true ], ];
就这些!其余的应该可以在你的IDE中自动完成,而且都很简单!祝你玩得开心。