# Package =TWiki::LoginManager::TemplateLogin This is a login manager that you can specify in the security setup section of [configure](http://www.dementia.org/twiki/configure). It provides users with a template-based form to enter usernames and passwords, and works with the [[PasswordManager]] that you specify to verify those passwords. Subclass of TWiki::LoginManager; see that class for documentation of the methods of this class.
## [[ClassMethod]] **new** `($session,$impl)` Construct the [[TemplateLogin]] object ## [[ObjectMethod]] \*forceAuthentication `() -> boolean` method called when authentication is required - redirects to (...|view)auth Triggered on auth fail ## [[ObjectMethod]] **loginUrl** `() -> $loginUrl` TODO: why is this not used internally? When is it called, and why Content of a login link ## [[ObjectMethod]] **login** `($query,$twiki)` If a login name and password have been passed in the query, it validates these and if authentic, redirects to the original script. If there is no username in the query or the username/password is invalid (validate returns non-zero) then it prompts again. If a flag to remember the login has been passed in the query, then the corresponding session variable will be set. This will result in the login cookie being preserved across browser sessions. The password handler is expected to return a perl true value if the password is valid. This return value is stored in a session variable called VALIDATION. This is so that password handlers can return extra information about the user, such as a list of TWiki groups stored in a separate database, that can then be displayed by referring to %SESSION\_VARIABLE\{"VALIDATION"\}%