setup electron app with boilerplate
This commit is contained in:
@@ -0,0 +1,74 @@
|
||||
#ifndef AUTHMANAGER_H
|
||||
#define AUTHMANAGER_H
|
||||
|
||||
#include <QObject>
|
||||
|
||||
QT_BEGIN_NAMESPACE
|
||||
class QSettings;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
struct SessionData
|
||||
{
|
||||
QString id;
|
||||
QString email;
|
||||
QString emailPrefix;
|
||||
};
|
||||
|
||||
class AuthManager : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit AuthManager(QObject *parent = nullptr);
|
||||
|
||||
bool isSignedIn() const;
|
||||
|
||||
/// @brief If isSignedIn() this will contain the human's session data.
|
||||
/// @returns Session data for the authed human. nullptr if not signed in.
|
||||
SessionData *sessionData() const;
|
||||
|
||||
public slots:
|
||||
/// @brief Sends a code to the requested email.
|
||||
///
|
||||
/// You must verify the code in the signIn method to receive a session.
|
||||
///
|
||||
/// @params email to send code to.
|
||||
void requestSignInCode(const QString &email);
|
||||
|
||||
/// @brief Creates a session if authenticated.
|
||||
///
|
||||
/// @params code that was sent to the email in the previous step
|
||||
void signIn(const QString &code);
|
||||
|
||||
void signOut();
|
||||
|
||||
/// @brief checks if there is a cached session that is valid
|
||||
void tryRestoreSession();
|
||||
|
||||
signals:
|
||||
void sessionRestoreCompleted();
|
||||
|
||||
void isSignedInChanged();
|
||||
void signedOut();
|
||||
void signedIn();
|
||||
|
||||
void codeSentToEmail(const QString &email);
|
||||
|
||||
void errorOccurred(const QString &message);
|
||||
|
||||
private:
|
||||
QString m_lastEmail;
|
||||
|
||||
bool m_isSignedIn;
|
||||
void setIsSignedIn(bool);
|
||||
|
||||
SessionData *m_sessionData;
|
||||
|
||||
QSettings *m_settings;
|
||||
QString m_sessionToken;
|
||||
|
||||
/// Sets session token internally to class, in storage, and sets networkmanager appropriately
|
||||
/// Pass "" if you want to remove it.
|
||||
void setSessionToken(const QString &);
|
||||
};
|
||||
|
||||
#endif // AUTHMANAGER_H
|
||||
Reference in New Issue
Block a user