![]() |
cutelyst 5.0.1
A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework.
|
Main class to manage user authentication. More...
#include <Cutelyst/Plugins/Authentication/authentication.h>

Public Member Functions | |
| Authentication (Application *parent) | |
| virtual | ~Authentication () override |
| void | addRealm (std::shared_ptr< AuthenticationRealm > realm) |
| void | addRealm (std::shared_ptr< AuthenticationStore > store, std::shared_ptr< AuthenticationCredential > credential, QStringView name=defaultRealm) |
| std::shared_ptr< AuthenticationRealm > | realm (QStringView name=defaultRealm) const |
Public Member Functions inherited from Cutelyst::Plugin | |
| Plugin (Application *parent) | |
Static Public Member Functions | |
| static bool | authenticate (Context *c, const ParamsMultiMap &userinfo, QStringView realm=defaultRealm) |
| static bool | authenticate (Context *c, QStringView realm=defaultRealm) |
| static AuthenticationUser | findUser (Context *c, const ParamsMultiMap &userinfo, QStringView realm=defaultRealm) |
| static void | logout (Context *c) |
| static AuthenticationUser | user (Context *c) |
| static bool | userExists (Context *c) |
| static bool | userInRealm (Context *c, QStringView realmName=defaultRealm) |
Static Public Attributes | |
| static const QStringView | defaultRealm |
Protected Member Functions | |
| virtual bool | setup (Application *app) override |
The Authentication class authenticates users against user data found in a specific realm. You can add multiple AuthenticationRealms identified by name that consist of different AuthenticationStore and AuthenticationCredential providers. You could for example add one realm for login on the website using a HTML formular and another one using HTTP basic authentication to authenticate with your API routes.
For an example implementation see Authentication overview.
Definition at line 75 of file authentication.h.
|
explicit |
Constructs a new Authentication object with the given parent.
Definition at line 30 of file authentication.cpp.
References Cutelyst::Plugin::Plugin().
Referenced by addRealm(), and realm().
|
overridevirtual |
Destroys the Authentication object.
Definition at line 37 of file authentication.cpp.
| void Authentication::addRealm | ( | std::shared_ptr< AuthenticationRealm > | realm | ) |
Adds the realm.
Definition at line 42 of file authentication.cpp.
References Authentication(), and realm().
Referenced by addRealm().
| void Cutelyst::Authentication::addRealm | ( | std::shared_ptr< AuthenticationStore > | store, |
| std::shared_ptr< AuthenticationCredential > | credential, | ||
| QStringView | name = defaultRealm ) |
Creates a new AuthenticationRealm using store, credential and name.
Definition at line 50 of file authentication.cpp.
References addRealm().
|
staticnodiscard |
Returns true if the userinfo could be validated against realm.
Definition at line 64 of file authentication.cpp.
References Cutelyst::AuthenticationUser::isNull(), and realm().
Referenced by authenticate().
|
inlinestaticnodiscard |
Returns true if the request information could be validated against realm.
Definition at line 164 of file authentication.h.
References authenticate(), and realm().
|
staticnodiscard |
Tries to find the user with userinfo using the realm, returning a non null AuthenticationUser on success
Definition at line 87 of file authentication.cpp.
References realm().
|
static |
Logs the user out. Deletes the currently logged in user from the Context and the session. It does not delete the session.
Definition at line 157 of file authentication.cpp.
|
nodiscard |
Returns an AuthenticationRealm object that was registered with name.
Definition at line 58 of file authentication.cpp.
References Authentication().
Referenced by addRealm(), authenticate(), authenticate(), and findUser().
|
overrideprotectedvirtual |
Reimplement this if you need to connect to the signals emitted from Cutelyst::Application.
Reimplemented from Cutelyst::Plugin.
Definition at line 172 of file authentication.cpp.
References Cutelyst::Application::postForked().
|
staticnodiscard |
Returns the authenticated user if any, if you only need to know if the user is authenticated (rather than retrieving it's ID) use userExists() instead which is faster.
Definition at line 107 of file authentication.cpp.
References Cutelyst::Context::stash(), and user().
Referenced by Cutelyst::RoleACL::canVisit(), and user().
|
staticnodiscard |
Returns true if a user is logged in right now. The difference between userExists() and user() is that userExists() will return true if a user is logged in, even if it has not been yet retrieved from the storage backend. If you only need to know if the user is logged in, depending on the storage mechanism this can be much more efficient. userExists() only looks into the session while user() is trying to restore the user.
Definition at line 119 of file authentication.cpp.
References Cutelyst::Context::stash().
|
staticnodiscard |
Works like userExists(), except that it only returns true if a user is both logged in right now and was retrieved from the realm provided.
Definition at line 136 of file authentication.cpp.
References Cutelyst::Context::stash().
|
static |
Default realm name.
Definition at line 83 of file authentication.h.