networkteam / neos-passwordreset
一个Neos包,允许用户在前端重置密码。
2.0.3
2024-03-05 08:12 UTC
Requires
- donatj/phpuseragentparser: *
- neos/fusion-afx: *
- neos/neos: ~5.0 || ~7.0 || ~8.0
- neos/swiftmailer: *
This package is auto-updated.
Last update: 2024-09-05 09:09:57 UTC
README
允许用户在前端重置密码。
安装
$ composer require networkteam/neos-passwordreset
$ ./flow doctrine:migrate
配置
覆盖模板路径以指向您自己的模板。这些可以从原始模板复制。它们来自postmarkapp.com的优秀项目。
Networkteam:
Neos:
PasswordReset:
authenticationProviders:
- Networkteam.Neos.FrontendLogin:Frontend
senderAddress: 'no-reply@organisation.org'
templatePaths:
noAccountMailHtml: 'resource://Networkteam.Neos.PasswordReset/Private/Templates/Mail/password-reset-help.html'
noAccountMailTxt: 'resource://Networkteam.Neos.PasswordReset/Private/Templates/Mail/password-reset-help.txt'
resetPasswordMailHtml: 'resource://Networkteam.Neos.PasswordReset/Private/Templates/Mail/password-reset-link.html'
resetPasswordMailTxt: 'resource://Networkteam.Neos.PasswordReset/Private/Templates/Mail/password-reset-link.txt'
配置 authenticationProviders
是一个数组,指定重置密码可能的提供者。当提供多个提供者时,会为每个提供者测试电子邮件地址,并为找到的第一个账户创建邮件。
策略
为了使密码更改功能正常工作,您必须将密码更改权限(Networkteam.Neos.PasswordReset:PasswordChange
)添加到成员区域角色。如果您使用networkteam FrontendLogin 包,它看起来如下
Policy.yaml
roles:
'Networkteam.Neos.FrontendLogin:MemberArea':
abstract: true
privileges:
- privilegeTarget: 'Networkteam.Neos.PasswordReset:PasswordChange'
permission: GRANT
信号
此包为某些事件提供 信号。
requestResetAction
信息流
如果用户请求新密码,则会向给定地址发送电子邮件。如果找不到与电子邮件地址相关联的账户,则会发送包含此信息的电子邮件,通知用户他可能已使用其他电子邮件地址为此账户。
如果找到账户,则生成一个令牌以识别请求,并向用户发送电子邮件。当用户单击电子邮件中的链接并提交显示的新密码表单时,将验证令牌。
需求/不足之处
账户需要有一个电子邮件地址作为标识符,即用户名。这是由于Neos中电子地址处理的性质所必需的。还应该没有具有相同电子邮件地址但不同认证提供者的账户。这是可能的,但只有对于第一个配置的认证提供者,重置才可行。
样式
为了将表单调整为您的应用程序/网站,请覆盖融合模板。每个表单/响应都有一个。
- RequestForm 是最初显示以输入电子邮件地址的表单
- RequestAccepted 在发送电子邮件后显示
- ResetForm 是显示以提供新密码的表单
- ResetSucceeded 是密码重置完成后执行的融合
模板中可用变量
- node # the node the form was sent from - email # the email provided in the form - operating_system # a string from the referer - browser_name # a string from the referer