daddl3/email_with_login_link_and_change_password
Composer 安装命令:
composer require daddl3/email_with_login_link_and_change_password
包简介
Symfony Bundle for automatic E-Mail sending with Login Link
关键字:
README 文档
README
Email Login When Creating A User And Change Password
Send an E-Mail with a Login Link via Symfony Messenger.
Getting started
This bundle dispatches an EmailOnCreationEvent which is converted into a
SendUserCreationEmailMessage and processed asynchronously by a Messenger
worker. The handler creates a login link for the new user and sends the
welcome E-Mail.
Installation
$ composer require daddl3/email_with_login_link_and_change_password
Requirements
- PHP
^8.5 - Symfony
^8
Configuration
Security firewall
Add login_link to the firewall that protects your application:
security:
firewalls:
main:
login_link:
check_route: login_check
lifetime: 86400
signature_properties: ['id', 'email']
signature_properties must reference properties on your user entity. The
fields email and id are required by this bundle, fullname is optional.
The bundle exposes its own check route as daddl3_login_check. Either point
check_route to that name, or declare a login_check route in your app that
the login_link authenticator intercepts:
#[Route('/login_check', name: 'login_check')]
public function loginCheck(): never
{
throw new LogicException('Intercepted by the login_link authenticator');
}
Messenger
Route the message to an asynchronous transport so E-Mail sending happens outside the request cycle:
framework:
messenger:
transports:
email:
dsn: '%env(MESSENGER_TRANSPORT_DSN)%'
options:
queue_name: 'email'
table_name: 'email'
routing:
daddl3\EmailWithLoginLinkAndChangePasswordBundle\Message\SendUserCreationEmailMessage: email
Then run a worker:
$ bin/console messenger:consume email
User entity
Implement daddl3\EmailWithLoginLinkAndChangePasswordBundle\Contract\EmailUserInterface
on your user entity. The interface adds these methods on top of
UserInterface and PasswordAuthenticatedUserInterface:
public function getEmail(): ?string;
public function setPassword(string $password): void;
public function setSetOwnPassword(bool $value): void;
public function isOwnPasswordIsAlreadySet(): bool;
public function getFullname(): ?string;
Dispatching the event
use daddl3\EmailWithLoginLinkAndChangePasswordBundle\Event\EmailOnCreationEvent;
use Symfony\Component\Mime\Address;
use Symfony\Component\Mime\Email;
$this->eventDispatcher->dispatch(new EmailOnCreationEvent(
emailUser: $user,
sender: new Address('email@example.de', 'Mr. Daddl3'),
subject: 'Welcome',
cc: 'cc@example.de',
bcc: 'bcc@example.de',
replyTo: new Address('reply@example.de'),
priority: Email::PRIORITY_HIGH,
));
Overriding the E-Mail template
Place your override at:
templates/bundles/Daddl3EmailWithLoginLinkAndChangePasswordBundle/email.html.twig
The template receives loginLink (string), user (your EmailUserInterface
instance) and message (the dispatched SendUserCreationEmailMessage).
daddl3/email_with_login_link_and_change_password 适用场景与选型建议
daddl3/email_with_login_link_and_change_password 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 503 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 09 月 05 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「email」 「autologin」 「login link」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 daddl3/email_with_login_link_and_change_password 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 daddl3/email_with_login_link_and_change_password 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 daddl3/email_with_login_link_and_change_password 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
WeChat OAuth SDK
Autologin package for Laravel 7
User registration and edit plugin, fully configurable, custom validators, autologin, double-opt-in, admin approval, IRRE configuration, resend activation mail, redirect features, support for saltedpasswords, support for salesforce. More to come!
Debugging a problem and need to login as one of your customers? This allows you to authenticate as any of your customers.
CakePHP AutoLogin Component
Enables seamless autologin functionality via temporary links, providing convenient and secure access to your application.
统计信息
- 总下载量: 503
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 14
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-09-05