ProcessLogin class

Provides Login capability for ProcessWire

Example of simple front-end login, logged-in, and logout flow:

$login = $modules->get('ProcessLogin');
$login->allowEmail = 0; // 0=login w/username, 1=login w/email, 2=either

if(!$user->isLoggedin()) {
  $out = $login->execute();
} else if($input->get('logout') === $user->name) {
  $out = $login->executeLogout();
} else {
  $login->message("Welcome $user->name you are logged in");
  $out = "<p><a href='./?logout=$user->name'>Logout</a></p>";
}

// render errors, warnings and messages
foreach($notices as $notice) {
  $text = $sanitizer->entities($notice->text);
  echo "<p class='$notice->className'>$text</p>";
}

// output markup for login form, etc.
echo $out;

Click any linked item for full usage details and examples. Hookable methods are indicated with the icon. In addition to those shown below, the ProcessLogin class also inherits all the methods and properties of: Process, WireData and Wire.

Show class?     Show args?       Only hookable?    

Common

NameReturnSummary 
ProcessLogin::execute()
string

Check if login posted and attempt login, otherwise render the login form

ProcessLogin::executeLogout()
string

Log the user out

ProcessLogin::getBeforeLoginVars()
array

Get validated/sanitized variables in the query string for not logged-in user to retain after login

ProcessLogin::getTfa()
null Tfa

Get Tfa instance or null if not applicable

 
ProcessLogin::getTfaConfigInputfields()
InputfieldFieldset

Get Inputfields to configure Tfa settings

 
ProcessLogin::labels(string $name)
string

Get or set named label text

 
ProcessLogin::login(string $name, string $pass)
bool

Perform login and redirect on success

ProcessLogin::markup(string $name)
string

Get or set custom markup

 
ProcessLogin::setLoginURL(string $url)
$this

Set URL to redirect to after login success

 
ProcessLogin::setLogoutURL($url)
$this

Set URL to redirect to after logout success

 
ProcessLogin::useEmailLogin()
bool int

Use login by email?

 

For hooks

These methods are only useful for hooking and should not be called directly.

Properties

NameReturnSummary 
ProcessLogin::allowEmail bool int Whether or not email login is allowed (0|false=off, 1|true=Yes, 2=Yes or name also allowed) 
ProcessLogin::allowForgot bool Whether the ProcessForgotPassword module is installed. 
ProcessLogin::emailField string Field name used for email login (when enabled).  
ProcessLogin::skipLabel int Optionally populate with an Inputfield::skipLabel* constant to be used on the login form inputs.  
ProcessLogin::tfaAutoRoleIDs array Auto-enable for these role IDs, or blank for all roles. Applies only if $tfaAutoType selected
DEFAULT: []
 
ProcessLogin::tfaAutoType string Auto-enable type, aka module name
DEFAULT: ''
 
ProcessLogin::tfaRecRoleIDs array Role IDs where admin prompts/recommends them to enable TFA. 
ProcessLogin::tfaRememberDays int Allow user to remember their browser and bypass TFA for this many days (-1=no limit, 0=disabled) 
ProcessLogin::tfaRememberFingerprints array Means by which to fingerprint user’s browser 

Additional methods and properties

In addition to the methods and properties above, ProcessLogin also inherits the methods and properties of these classes:

API reference based on ProcessWire core version 3.0.253