1 #line 2 "src/Dbo/Users/Auth.cpp"
3 #include <Wt/Auth/Dbo/UserDatabase.h>
4 #include <Wt/Auth/AuthService.h>
5 #include <Wt/Auth/HashFunction.h>
6 #include <Wt/Auth/PasswordService.h>
7 #include <Wt/Auth/PasswordStrengthValidator.h>
8 #include <Wt/Auth/PasswordVerifier.h>
9 #include <Wt/Auth/GoogleService.h>
10 #include <Wt/Auth/FacebookService.h>
11 #include <Wt/Auth/Dbo/AuthInfo.h>
17 Wt::Auth::AuthService myAuthService ;
18 Wt::Auth::PasswordService myPasswordService( myAuthService ) ;
19 std::vector< std::unique_ptr< Wt::Auth::OAuthService > > myOAuthServices ;
24 mapClasses( Wt::Dbo::Session & _session )->
void
27 _session.mapClass<
AuthInfo >(
"gcw_info" );
28 _session.mapClass< AuthInfo::AuthIdentityType >(
"gcw_identity" );
29 _session.mapClass< AuthInfo::AuthTokenType >(
"gcw_token" );
43 typedef Wt::Auth::Dbo::UserDatabase<AuthInfo>
UserDatabase;
45 Wt::Dbo::Transaction t(session);
48 auto authUser = users.registerNew();
49 authUser.addIdentity( Wt::Auth::Identity::LoginName,
"admin" );
50 authUser.setEmail(
"mark@lorimarksolutions.com" );
60 myAuthService.setAuthTokensEnabled(
true,
"logincookie" );
61 myAuthService.setEmailVerificationEnabled(
true );
62 myAuthService.setEmailVerificationRequired(
true );
63 myAuthService.setIdentityPolicy( Wt::Auth::IdentityPolicy::EmailAddress );
66 = std::make_unique<Wt::Auth::PasswordVerifier>();
67 verifier->addHashFunction( std::make_unique<Wt::Auth::BCryptHashFunction>(7) );
68 myPasswordService.setVerifier( std::move(verifier) );
69 myPasswordService.setAttemptThrottlingEnabled(
true );
70 myPasswordService.setStrengthValidator( std::make_unique<Wt::Auth::PasswordStrengthValidator>() );
72 if( Wt::Auth::GoogleService::configured() )
73 myOAuthServices.push_back( std::make_unique<Wt::Auth::GoogleService>( myAuthService ) );
75 if( Wt::Auth::FacebookService::configured() )
76 myOAuthServices.push_back( std::make_unique<Wt::Auth::FacebookService>( myAuthService ) );
78 for(
unsigned i = 0; i < myOAuthServices.size(); ++i )
79 myOAuthServices[i]-> generateRedirectEndpoint();
85 service()->
const Wt::Auth::AuthService &
95 return myPasswordService;
101 oService()->
const std::vector<const Wt::Auth::OAuthService *>
103 std::vector<const Wt::Auth::OAuthService *> result;
105 for(
auto & auth : myOAuthServices )
106 result.push_back( auth.get() );
auto passwordService() -> const Wt::Auth::PasswordService &
auto postCreateTables(Wt::Dbo::Session &session) -> void
Wt::Auth::Dbo::UserDatabase< AuthInfo > UserDatabase
auto service() -> const Wt::Auth::AuthService &
Wt::Auth::Dbo::AuthInfo< GCW::Dbo::Users::Item > AuthInfo
auto mapClasses(Wt::Dbo::Session &session) -> void
auto oService() -> const std::vector< const Wt::Auth::OAuthService * >