Sophie

Sophie

distrib > Fedora > 18 > x86_64 > by-pkgid > b3a1f4d91c26f535919e39e25606614a > files > 2379

wt-doc-3.2.3-1.fc18.noarch.rpm

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<title>Wt: Authentication module (Wt::Auth)</title>

<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />

<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>

</head>
<body>
<div id="top"><!-- do not remove this div! -->


<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  
  
  <td style="padding-left: 0.5em;">
   <div id="projectname">Wt
   &#160;<span id="projectnumber">3.2.3</span>
   </div>
   
  </td>
  
  
  
 </tr>
 </tbody>
</table>
</div>

<!-- Generated by Doxygen 1.7.5.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.html"><span>Related&#160;Pages</span></a></li>
      <li><a href="modules.html"><span>Modules</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
</div>
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#enum-members">Enumerations</a>  </div>
  <div class="headertitle">
<div class="title">Authentication module (Wt::Auth)</div>  </div>
</div>
<div class="contents">

<p>A module that implements authentication functions.  
<a href="#details">More...</a></p>
<table class="memberdecls">
<tr><td colspan="2"><h2><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1FacebookService.html">Wt::Auth::FacebookService</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">OAuth service for Facebook as third-party authenticator.  <a href="classWt_1_1Auth_1_1FacebookService.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1GoogleService.html">Wt::Auth::GoogleService</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">OAuth service for Google as third-party authenticator.  <a href="classWt_1_1Auth_1_1GoogleService.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1PasswordStrengthValidator.html">Wt::Auth::PasswordStrengthValidator</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A default implementation for password strength validation.  <a href="classWt_1_1Auth_1_1PasswordStrengthValidator.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1AbstractPasswordService.html">Wt::Auth::AbstractPasswordService</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract password authentication service.  <a href="classWt_1_1Auth_1_1AbstractPasswordService.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html">Wt::Auth::AbstractUserDatabase</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract interface for an authentication user database.  <a href="classWt_1_1Auth_1_1AbstractUserDatabase.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1AuthModel.html">Wt::Auth::AuthModel</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Model for implementing an authentication view.  <a href="classWt_1_1Auth_1_1AuthModel.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1EmailTokenResult.html">Wt::Auth::EmailTokenResult</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The result of processing an email-sent token.  <a href="classWt_1_1Auth_1_1EmailTokenResult.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1AuthTokenResult.html">Wt::Auth::AuthTokenResult</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">The result of processing an authentication token.  <a href="classWt_1_1Auth_1_1AuthTokenResult.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1AuthService.html">Wt::Auth::AuthService</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Basic authentication service.  <a href="classWt_1_1Auth_1_1AuthService.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1AuthWidget.html">Wt::Auth::AuthWidget</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An authentication widget.  <a href="classWt_1_1Auth_1_1AuthWidget.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1Dbo_1_1AuthInfo.html">Wt::Auth::Dbo::AuthInfo&lt; UserType &gt;</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A default implementation for authentication data in Wt::Dbo.  <a href="classWt_1_1Auth_1_1Dbo_1_1AuthInfo.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1Dbo_1_1AuthToken.html">Wt::Auth::Dbo::AuthToken&lt; AuthInfoType &gt;</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A default implementation for an authentication token in Wt::Dbo.  <a href="classWt_1_1Auth_1_1Dbo_1_1AuthToken.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1Dbo_1_1AuthIdentity.html">Wt::Auth::Dbo::AuthIdentity&lt; AuthInfoType &gt;</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A default implementation for a authentication identity in Wt::Dbo.  <a href="classWt_1_1Auth_1_1Dbo_1_1AuthIdentity.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html">Wt::Auth::Dbo::UserDatabase&lt; DboType &gt;</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A default implementation for a authentication data in Wt::Dbo.  <a href="classWt_1_1Auth_1_1Dbo_1_1UserDatabase.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1FormBaseModel.html">Wt::Auth::FormBaseModel</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A base model class for authentication-related forms.  <a href="classWt_1_1Auth_1_1FormBaseModel.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1HashFunction.html">Wt::Auth::HashFunction</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An abstract cryptographic hash function interface.  <a href="classWt_1_1Auth_1_1HashFunction.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1MD5HashFunction.html">Wt::Auth::MD5HashFunction</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A cryptograhpic hash function implemented using MD5.  <a href="classWt_1_1Auth_1_1MD5HashFunction.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1SHA1HashFunction.html">Wt::Auth::SHA1HashFunction</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A cryptographic hash function implemented using SHA1.  <a href="classWt_1_1Auth_1_1SHA1HashFunction.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1BCryptHashFunction.html">Wt::Auth::BCryptHashFunction</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An cryptographic hash function that implements bcrypt.  <a href="classWt_1_1Auth_1_1BCryptHashFunction.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1Identity.html">Wt::Auth::Identity</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A class that represents a user identity.  <a href="classWt_1_1Auth_1_1Identity.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1Login.html">Wt::Auth::Login</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A class that manages the current login state.  <a href="classWt_1_1Auth_1_1Login.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1LostPasswordWidget.html">Wt::Auth::LostPasswordWidget</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A widget which initiates a lost-password email.  <a href="classWt_1_1Auth_1_1LostPasswordWidget.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1OAuthAccessToken.html">Wt::Auth::OAuthAccessToken</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An OAuth access token.  <a href="classWt_1_1Auth_1_1OAuthAccessToken.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1OAuthProcess.html">Wt::Auth::OAuthProcess</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An OAuth authorization (and authentication) process.  <a href="classWt_1_1Auth_1_1OAuthProcess.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1OAuthService.html">Wt::Auth::OAuthService</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An OAuth authorization (and authentication) service provider.  <a href="classWt_1_1Auth_1_1OAuthService.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1PasswordHash.html">Wt::Auth::PasswordHash</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A password hash.  <a href="classWt_1_1Auth_1_1PasswordHash.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1PasswordPromptDialog.html">Wt::Auth::PasswordPromptDialog</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A dialog that prompts for the user password.  <a href="classWt_1_1Auth_1_1PasswordPromptDialog.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1PasswordService.html">Wt::Auth::PasswordService</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Password authentication service.  <a href="classWt_1_1Auth_1_1PasswordService.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1PasswordVerifier.html">Wt::Auth::PasswordVerifier</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Password hash computation and verification class.  <a href="classWt_1_1Auth_1_1PasswordVerifier.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html">Wt::Auth::RegistrationModel</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Model for implementing a registration view.  <a href="classWt_1_1Auth_1_1RegistrationModel.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1RegistrationWidget.html">Wt::Auth::RegistrationWidget</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A registration widget.  <a href="classWt_1_1Auth_1_1RegistrationWidget.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1Token.html">Wt::Auth::Token</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">An authentication token hash.  <a href="classWt_1_1Auth_1_1Token.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1UpdatePasswordWidget.html">Wt::Auth::UpdatePasswordWidget</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A widget which allows a user to choose a new password.  <a href="classWt_1_1Auth_1_1UpdatePasswordWidget.html#details">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classWt_1_1Auth_1_1User.html">Wt::Auth::User</a></td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">A user.  <a href="classWt_1_1Auth_1_1User.html#details">More...</a><br/></td></tr>
<tr><td colspan="2"><h2><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__auth.html#ga001a66930b52328e78649572d6922bcc">Wt::Auth::PasswordResult</a> { <a class="el" href="group__auth.html#gga001a66930b52328e78649572d6922bcca7453e5425395879f042f89835dc5efca">Wt::Auth::PasswordInvalid</a>, 
<a class="el" href="group__auth.html#gga001a66930b52328e78649572d6922bccaadaf1bea4c3a31d1503ea32a25a082c1">Wt::Auth::LoginThrottling</a>, 
<a class="el" href="group__auth.html#gga001a66930b52328e78649572d6922bccac59caadee618943ba2a5addbb8c963fc">Wt::Auth::PasswordValid</a>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for a password verification result.  <a href="group__auth.html#ga001a66930b52328e78649572d6922bcc">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__auth.html#ga8ce12bbc04d68d5687f08abf2a209436">Wt::Auth::IdentityPolicy</a> { <a class="el" href="group__auth.html#gga8ce12bbc04d68d5687f08abf2a209436a67fdbfbd94c375b7c76faf25fc115de7">Wt::Auth::LoginNameIdentity</a>, 
<a class="el" href="group__auth.html#gga8ce12bbc04d68d5687f08abf2a209436acf9628b34d36bd518389021ba6beb895">Wt::Auth::EmailAddressIdentity</a>, 
<a class="el" href="group__auth.html#gga8ce12bbc04d68d5687f08abf2a209436af33c29ab72a7d7ebf32a89c7d5960515">Wt::Auth::OptionalIdentity</a>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for an identity policy.  <a href="group__auth.html#ga8ce12bbc04d68d5687f08abf2a209436">More...</a><br/></td></tr>
<tr><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__auth.html#ga0ce4a4a08ad982d03a99a5405394b796">Wt::Auth::LoginState</a> { <a class="el" href="group__auth.html#gga0ce4a4a08ad982d03a99a5405394b796a4dca5ece45453d25281eb3f23812a963">Wt::Auth::LoggedOut</a>, 
<a class="el" href="group__auth.html#gga0ce4a4a08ad982d03a99a5405394b796ab200b54486df27a1f5fb9d01b90bf4e2">Wt::Auth::DisabledLogin</a>, 
<a class="el" href="group__auth.html#gga0ce4a4a08ad982d03a99a5405394b796aeb2c25a71689d69dd92413f0640be53b">Wt::Auth::WeakLogin</a>, 
<a class="el" href="group__auth.html#gga0ce4a4a08ad982d03a99a5405394b796ac65b858d14e5391aa70b7e1555b634a2">Wt::Auth::StrongLogin</a>
 }</td></tr>
<tr><td class="mdescLeft">&#160;</td><td class="mdescRight">Enumeration for a login state.  <a href="group__auth.html#ga0ce4a4a08ad982d03a99a5405394b796">More...</a><br/></td></tr>
</table>
<hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
<p>A module that implements authentication functions. </p>
<p>This module implements a complete modular authentication system for Wt applications.</p>
<p>The module is organized in model classes, which implement authentication logic, and view classes which are widgets that implement UI components.</p>
<h3>Model</h3>
<p>The model layer is organized in a number of service classes, which provide the configuration and authentication services, and are generally shared between different sessions, and session classes which implement the authentication state for each session.</p>
<p>The <b>service classes</b> are:</p>
<ul>
<li><a class="el" href="classWt_1_1Auth_1_1AuthService.html" title="Basic authentication service.">AuthService</a>: implements generic authentication services</li>
<li><a class="el" href="classWt_1_1Auth_1_1PasswordService.html" title="Password authentication service.">PasswordService</a>: implements password-based authentication</li>
<li><a class="el" href="classWt_1_1Auth_1_1OAuthService.html" title="An OAuth authorization (and authentication) service provider.">OAuthService</a>: implements federated login using OAuth 2 (and later OpenIDConnect), and has a number of indentity provider implementations</li>
</ul>
<p>There are a number of utility classes too:</p>
<ul>
<li><a class="el" href="classWt_1_1Auth_1_1User.html" title="A user.">User</a>: a user value class</li>
<li><a class="el" href="classWt_1_1Auth_1_1Token.html" title="An authentication token hash.">Token</a>: an authentication token</li>
<li><a class="el" href="classWt_1_1Auth_1_1PasswordHash.html" title="A password hash.">PasswordHash</a>: a hashed password</li>
<li><a class="el" href="classWt_1_1Auth_1_1PasswordStrengthValidator.html" title="A default implementation for password strength validation.">PasswordStrengthValidator</a>: validates the strength of a password</li>
<li><a class="el" href="classWt_1_1Auth_1_1PasswordVerifier.html" title="Password hash computation and verification class.">PasswordVerifier</a>: verifies a password (against a hash stored in the database)</li>
</ul>
<p>The <b>session classes</b> are:</p>
<ul>
<li><a class="el" href="classWt_1_1Auth_1_1AbstractUserDatabase.html" title="Abstract interface for an authentication user database.">AbstractUserDatabase</a>: abstract interface for storage needed for authentication</li>
<li><a class="el" href="classWt_1_1Auth_1_1Login.html" title="A class that manages the current login state.">Login</a>: keeps track of the user currently logged in</li>
<li><a class="el" href="classWt_1_1Auth_1_1OAuthProcess.html" title="An OAuth authorization (and authentication) process.">OAuthProcess</a>: implements an OAuth 2 authorization (and authentication) process</li>
<li><a class="el" href="classWt_1_1Auth_1_1RegistrationModel.html" title="Model for implementing a registration view.">RegistrationModel</a>: implements the registration logic</li>
</ul>
<h3>Views</h3>
<p>The view classes typically use service classes and session classes.</p>
<p>The included views are:</p>
<ul>
<li><a class="el" href="classWt_1_1Auth_1_1AuthWidget.html" title="An authentication widget.">AuthWidget</a>: a (traditional) login/logout widget</li>
<li><a class="el" href="classWt_1_1Auth_1_1LostPasswordWidget.html" title="A widget which initiates a lost-password email.">LostPasswordWidget</a>: a widget that implements a "lost password" form</li>
<li><a class="el" href="classWt_1_1Auth_1_1PasswordPromptDialog.html" title="A dialog that prompts for the user password.">PasswordPromptDialog</a>: a dialog to prompt for a password</li>
<li><a class="el" href="classWt_1_1Auth_1_1RegistrationWidget.html" title="A registration widget.">RegistrationWidget</a>: a widget to register a new user</li>
<li><a class="el" href="classWt_1_1Auth_1_1UpdatePasswordWidget.html" title="A widget which allows a user to choose a new password.">UpdatePasswordWidget</a>: a widget to update a password </li>
</ul>
<hr/><h2>Enumeration Type Documentation</h2>
<a class="anchor" id="ga8ce12bbc04d68d5687f08abf2a209436"></a><!-- doxytag: member="Wt::Auth::IdentityPolicy" ref="ga8ce12bbc04d68d5687f08abf2a209436" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__auth.html#ga8ce12bbc04d68d5687f08abf2a209436">Wt::Auth::IdentityPolicy</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enumeration for an identity policy. </p>
<p>This enumeration lists possible choices for the user identity (login name).</p>
<p>When using password authentication, it is clear that the user has to provide an identity to login. The only choice is whether you will use the user's email address or another login name.</p>
<p>When using a 3rd party authenticator, e.g. using OAuth, a login name is no longer needed, but you may still want to give the user the opportunity to choose one.</p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AuthService.html#aefb84d11c1dbc0c335b406ca9d3e3572" title="Configures the identity policy.">AuthService::setIdentityPolicy()</a> </dd></dl>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="gga8ce12bbc04d68d5687f08abf2a209436a67fdbfbd94c375b7c76faf25fc115de7"></a><!-- doxytag: member="LoginNameIdentity" ref="gga8ce12bbc04d68d5687f08abf2a209436a67fdbfbd94c375b7c76faf25fc115de7" args="" -->LoginNameIdentity</em>&nbsp;</td><td>
<p>A unique login name chosen by the user. </p>
<p>Even if not really required for authentication, a user still chooses a unique user name. If possible, a third party autheticator may suggest a user name.</p>
<p>This may be useful for sites which have a social aspect. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga8ce12bbc04d68d5687f08abf2a209436acf9628b34d36bd518389021ba6beb895"></a><!-- doxytag: member="EmailAddressIdentity" ref="gga8ce12bbc04d68d5687f08abf2a209436acf9628b34d36bd518389021ba6beb895" args="" -->EmailAddressIdentity</em>&nbsp;</td><td>
<p>The email address serves as the identity. </p>
<p>This may be useful for sites which do not have any social character, but instead render a service to individual users. When the site has a social character, you will likely not want to display the email address of other users, but instead a user-chosen login name. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga8ce12bbc04d68d5687f08abf2a209436af33c29ab72a7d7ebf32a89c7d5960515"></a><!-- doxytag: member="OptionalIdentity" ref="gga8ce12bbc04d68d5687f08abf2a209436af33c29ab72a7d7ebf32a89c7d5960515" args="" -->OptionalIdentity</em>&nbsp;</td><td>
<p>An identity is optional, and only asked if needed for authentication. </p>
<p>Unless the authentication procedure requires a user name, no particular identity is asked for. In this case, the identity is a unique internal identifier.</p>
<p>This may be useful for sites which do not have any social character, but instead render a service to individual users. </p>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<a class="anchor" id="ga0ce4a4a08ad982d03a99a5405394b796"></a><!-- doxytag: member="Wt::Auth::LoginState" ref="ga0ce4a4a08ad982d03a99a5405394b796" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__auth.html#ga0ce4a4a08ad982d03a99a5405394b796">Wt::Auth::LoginState</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enumeration for a login state. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1Login.html#aeabbf36f671e898fae0c3a6f1cdb5298" title="Returns the current login state.">Login::state()</a> </dd></dl>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="gga0ce4a4a08ad982d03a99a5405394b796a4dca5ece45453d25281eb3f23812a963"></a><!-- doxytag: member="LoggedOut" ref="gga0ce4a4a08ad982d03a99a5405394b796a4dca5ece45453d25281eb3f23812a963" args="" -->LoggedOut</em>&nbsp;</td><td>
<p>No user is currently identified. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga0ce4a4a08ad982d03a99a5405394b796ab200b54486df27a1f5fb9d01b90bf4e2"></a><!-- doxytag: member="DisabledLogin" ref="gga0ce4a4a08ad982d03a99a5405394b796ab200b54486df27a1f5fb9d01b90bf4e2" args="" -->DisabledLogin</em>&nbsp;</td><td>
<p>The identified user was refused to login. </p>
<p>This is caused by <a class="el" href="classWt_1_1Auth_1_1User.html#a25cc981dabd643012eaa9e18bf6d4d57" title="Returns the account status.">User::status()</a> returning <a class="el" href="classWt_1_1Auth_1_1User.html#ac8a61657a320eef6ae6e2c394bdd4437a35904fc75f2d7a6dd52f952487603a1d" title="Successfully identified but not allowed to log in.">User::Disabled</a> </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga0ce4a4a08ad982d03a99a5405394b796aeb2c25a71689d69dd92413f0640be53b"></a><!-- doxytag: member="WeakLogin" ref="gga0ce4a4a08ad982d03a99a5405394b796aeb2c25a71689d69dd92413f0640be53b" args="" -->WeakLogin</em>&nbsp;</td><td>
<p>A user is weakly authenticated. </p>
<p>The authentication method was weak, typically this means that a secondary authentication system was used (e.g. an authentication cookie) instead of a primary mechanism (like a password).</p>
<p>You may want to allow certain operations, but request to authenticate fully before more senstive operations. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga0ce4a4a08ad982d03a99a5405394b796ac65b858d14e5391aa70b7e1555b634a2"></a><!-- doxytag: member="StrongLogin" ref="gga0ce4a4a08ad982d03a99a5405394b796ac65b858d14e5391aa70b7e1555b634a2" args="" -->StrongLogin</em>&nbsp;</td><td>
<p>A user is strongly authenticated. </p>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
<a class="anchor" id="ga001a66930b52328e78649572d6922bcc"></a><!-- doxytag: member="Wt::Auth::PasswordResult" ref="ga001a66930b52328e78649572d6922bcc" args="" -->
<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__auth.html#ga001a66930b52328e78649572d6922bcc">Wt::Auth::PasswordResult</a></td>
        </tr>
      </table>
</div>
<div class="memdoc">

<p>Enumeration for a password verification result. </p>
<dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="classWt_1_1Auth_1_1AbstractPasswordService.html#a3baff128b654ac06f27b57c15c8923d8" title="Verifies a password for a given user.">AbstractPasswordService::verifyPassword()</a> </dd></dl>
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
<tr><td valign="top"><em><a class="anchor" id="gga001a66930b52328e78649572d6922bcca7453e5425395879f042f89835dc5efca"></a><!-- doxytag: member="PasswordInvalid" ref="gga001a66930b52328e78649572d6922bcca7453e5425395879f042f89835dc5efca" args="" -->PasswordInvalid</em>&nbsp;</td><td>
<p>The password is invalid. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga001a66930b52328e78649572d6922bccaadaf1bea4c3a31d1503ea32a25a082c1"></a><!-- doxytag: member="LoginThrottling" ref="gga001a66930b52328e78649572d6922bccaadaf1bea4c3a31d1503ea32a25a082c1" args="" -->LoginThrottling</em>&nbsp;</td><td>
<p>The attempt was not processed because of throttling. </p>
</td></tr>
<tr><td valign="top"><em><a class="anchor" id="gga001a66930b52328e78649572d6922bccac59caadee618943ba2a5addbb8c963fc"></a><!-- doxytag: member="PasswordValid" ref="gga001a66930b52328e78649572d6922bccac59caadee618943ba2a5addbb8c963fc" args="" -->PasswordValid</em>&nbsp;</td><td>
<p>The password is valid. </p>
</td></tr>
</table>
</dd>
</dl>

</div>
</div>
</div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Enumerator</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<hr size="1"><address style="text-align: right; margin: 3px"><small>
Generated on Thu Nov 1 2012 for <a href="http://www.webtoolkit.eu/wt">the
C++ Web Toolkit (Wt)</a> by&nbsp;<a
href="http://www.doxygen.org/index.html"><img src="doxygen.png"
alt="doxygen" border="0" style="vertical-align: middle; display:
inline-block; height: 2em"></a> 1.7.5.1</small></address>
</body>
</html>