我想根据他们所属的组将成功登录的成员重定向到特定页面。
过去,我可以在SS3中执行以下操作:
CustomLoginForm.php:
class CustomLoginForm extends MemberLoginForm
{
public function dologin($data)
{
// Redirect functionality here
}
}
/mysite/_config.yml:
Injector:
MemberLoginForm:
class: CustomLoginForm
但是,这种方法不适用于Silverstripe 4。
我尝试过:
doLogin()
并将其应用于Injector redirectAfterSuccessfulLogin()
并将其与Injector一起应用这两种方法均无效。
我对如何在SS4上实现这一目标感到困惑,并希望获得任何指导!
答案 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