Sometimes there’s a need to log-in a member manually, (ie. not through the normal login forms).
In Silverstripe 3 you could do this with
Member::login(), but this is now deprecated in SS4
In Silverstripe 4, the way that this process is handled has changed. You can use
Security::setCurrentUser(), but this only sets the user for the current request and won’t persist. To perform an ‘actual’ log-in, you’ll need to use the
$identityStore = Injector::inst()->get(IdentityStore::class); $identityStore->logIn($member, $rememberMe, $request);
login() method takes a standard member object at the first (mandatory) argument.
SilverStripe\Security\IdentityStore | SilverStripe API for more info. (Don’t forget the relevant
use statements in your code if you’re using namespaces)
(Hat-tip to @kinglozzer for the code snippet!)