【问题标题】:How to make custom Change Password redirect in Silverstripe?如何在 Silverstripe 中进行自定义更改密码重定向?
【发布时间】:2015-01-05 20:24:09
【问题描述】:

我有一个网站,成功登录后会重定向到会员页面:

_config.php
  Security::set_default_login_dest( '/join/' );

但是,当用户经历忘记密码/更改密码过程时,它的行为如下:

  1. /join/ - 用户从会员页面开始
  2. /Security/lostpassword - 用户点击“忘记密码”链接
  3. /Security/passwordsent/user%40example.com - 密码发送给用户
  4. /Security/changepassword?m=28&t=8dfeb7655db... - 用户点击电子邮件中的密码
  5. /Security/changepassword - 提示用户更改密码
  6. /Security/login?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);
    }

如何使 ChangePasswordForm 重定向到 default_login_dest?

【问题讨论】:

    标签: php silverstripe


    【解决方案1】:

    我没有对此进行测试,但您可以在电子邮件模板中添加&BackURL=... 吗?

    您可以创建电子邮件模板framework\templates\email\ForgotPasswordEmail.ss 的本地副本并将其更改为链接到:

    <a href="$PasswordResetLink&BackURL=/join/">
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-06-22
      • 1970-01-01
      • 2020-02-11
      • 2013-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多