9 #include "Wt/Auth/AuthService" 10 #include "Wt/Auth/HashFunction" 11 #include "Wt/Auth/PasswordService" 12 #include "Wt/Auth/PasswordStrengthValidator" 13 #include "Wt/Auth/PasswordVerifier" 14 #include "Wt/Auth/GoogleService" 15 #include "Wt/Auth/Dbo/AuthInfo" 16 #include "Wt/Auth/Dbo/UserDatabase" 18 #include <Wt/WApplication> 25 #if !defined(WT_WIN32) && !defined(__CYGWIN__) && !defined(ANDROID) 38 virtual std::string compute(
const std::string& msg,
39 const std::string& salt)
const 41 std::string md5Salt =
"$1$" + salt;
42 return crypt(msg.c_str(), md5Salt.c_str());
45 virtual bool verify(
const std::string& msg,
46 const std::string& salt,
47 const std::string& hash)
const 49 return crypt(msg.c_str(), hash.c_str()) == hash;
52 virtual std::string name ()
const {
58 class MyOAuth :
public std::vector<const Auth::OAuthService *>
63 for (
unsigned i = 0; i < size(); ++i)
70 MyOAuth myOAuthServices;
75 myAuthService.setAuthTokensEnabled(
true,
"hangmancookie");
76 myAuthService.setEmailVerificationEnabled(
true);
87 myPasswordService.setVerifier(verifier);
89 myPasswordService.setAttemptThrottlingEnabled(
true);
96 : sqlite3_(
WApplication::instance()->appRoot() +
"hangman.db")
116 guestUser.
addIdentity(Auth::Identity::LoginName,
"guest");
117 myPasswordService.updatePassword(guestUser,
"guest");
119 Wt::log(
"info") <<
"Database created";
121 Wt::log(
"info") <<
"Using existing database";
153 return std::string();
176 std::vector<User> result;
179 result.push_back(*user);
182 std::string name = auth->
identity(Auth::Identity::LoginName).
toUTF8();
184 result.back().name = name;
200 ranking =
session_.
query<
int>(
"select distinct count(score) from user")
201 .where(
"score > ?").bind(u->
score);
215 return myAuthService;
220 return myPasswordService;
225 return myOAuthServices;
Wt::Dbo::ptr< DboType > find(const User &user) const
Wt::Dbo::ptr< User > user() const
ptr< C > add(ptr< C > &ptr)
Query< ptr< C >, BindStrategy > find(const std::string &condition=std::string())
Wt::Auth::Dbo::UserDatabase< AuthInfo > UserDatabase
WString identity(const std::string &provider) const
Wt::Dbo::ptr< UserType > user() const
Wt::Auth::AbstractUserDatabase & users()
static const Wt::Auth::AuthService & auth()
Wt::Dbo::Session session_
std::string toUTF8() const
WString identity(const std::string &provider) const
void setUser(Wt::Dbo::ptr< UserType > user)
static const std::vector< const Wt::Auth::OAuthService * > & oAuth()
Wt::Dbo::backend::Sqlite3 sqlite3_
const User & user() const
void addHashFunction(HashFunction *function)
void setConnection(SqlConnection &connection)
static void configureAuth()
void addIdentity(const std::string &provider, const WString &identity)
Wt::Dbo::collection< Wt::Dbo::ptr< AuthInfo > > authInfos
void mapClass(const char *tableName)
std::vector< User > topUsers(int limit)
static const Wt::Auth::AbstractPasswordService & passwordAuth()
Query< Result, BindStrategy > query(const std::string &sql)
std::string userName() const
void setProperty(const std::string &name, const std::string &value)