Silverstripe 4:会员登录并重定向到特定页面

时间:2018-10-02 12:44:45

标签: silverstripe silverstripe-4

我想根据他们所属的组将成功登录的成员重定向到特定页面。

过去,我可以在SS3中执行以下操作:

CustomLoginForm.php:

class CustomLoginForm extends MemberLoginForm
{

    public function dologin($data)
    {
        // Redirect functionality here
    }
}

/mysite/_config.yml:

Injector:
  MemberLoginForm:
    class: CustomLoginForm

但是,这种方法不适用于Silverstripe 4。

我尝试过:

  • 如上所述,创建一个扩展了 MemberLoginForm CustomLoginForm ,定义doLogin()并将其应用于Injector
  • 创建扩展 LoginHander CustomLoginHandler ,定义redirectAfterSuccessfulLogin()并将其与Injector一起应用

这两种方法均无效。

我对如何在SS4上实现这一目标感到困惑,并希望获得任何指导!

1 个答案:

答案 0 :(得分:2)

已使用以下方法解决了此问题:

CustomLoginHander.php

<?php

namespace MySite\Namespace\Extensions;

use SilverStripe\Security\MemberAuthenticator\LoginHandler;
use SilverStripe\Security\Security;

class CustomLoginHandler extends LoginHandler
{

    protected function redirectAfterSuccessfulLogin()
    {
        // Login redirect methods
    }
}

mysite.yml:

---
Name: myproject
---
SilverStripe\Core\Injector\Injector:
  SilverStripe\Security\MemberAuthenticator\LoginHandler:
    class: MySite\Namespace\Extensions\CustomLoginHandler