我有一个网站,成功登录会重定向到会员页面:
_config.php
Security::set_default_login_dest( '/join/' );
但是,当用户经历忘记密码/更改密码过程时,它的行为如下:
- /join/ - 用户从成员资格页面开始 /
- 安全/丢失密码 - 用户点击"忘记密码"链接 /
- Security/passwordsent/user%40示例.com - 将密码发送给用户 /
- Security/changepassword?m=28&t=8dfeb7655db... - 用户单击电子邮件中的密码 /
- 安全性/更改密码 - 提示用户更改密码 /
- 安全/登录?BackURL=http%3A%2F%2Fwww.example.com%2F - 用户被重定向到登录页面
步骤 6 的预期行为是用户重定向到default_login_dest -/join/
ChangePasswordForm.php 具有以下代码控制重定向的位置:
if(isset($_REQUEST['BackURL'])) {
$backURL = $_REQUEST['BackURL'];
} else {
$backURL = Session::get('BackURL');
}
但是CMSMemberLoginForm.php有这样的代码:
if (Security::config()->default_login_dest) {
return $this->controller->redirect(Director::absoluteBaseURL() . Security::config()->default_login_dest);
}
如何使更改密码表单重定向到default_login_dest?
我还没有测试过这个,但你能在电子邮件模板中添加一个&BackURL=...
吗?
您可以创建电子邮件模板的本地副本framework'templates'email'ForgotPasswordEmail.ss
并将其更改为链接到:
<a href="$PasswordResetLink&BackURL=/join/">