libQuotient
A Qt library for building matrix clients
ssosession.h
Go to the documentation of this file.
1
// SPDX-FileCopyrightText: 2020 Kitsune Ral <kitsune-ral@users.sf.net>
2
// SPDX-License-Identifier: LGPL-2.1-or-later
3
4
#
pragma
once
5
6
#
include
"util.h"
7
8
#
include
<
QtCore
/
QUrl
>
9
#
include
<
QtCore
/
QObject
>
10
11
namespace
Quotient {
12
class
Connection;
13
14
/*! Single sign-on (SSO) session encapsulation
15
*
16
* This class is responsible for setting up of a new SSO session, providing
17
* a URL to be opened (usually, in a web browser) and handling the callback
18
* response after completing the single sign-on, all the way to actually
19
* logging the user in. It does NOT open and render the SSO URL, it only does
20
* the necessary backstage work.
21
*
22
* Clients only need to open the URL; the rest is done for them.
23
* Client code can look something like:
24
* \code
25
* QDesktopServices::openUrl(
26
* connection->prepareForSso(initialDeviceName)->ssoUrl());
27
* \endcode
28
*/
29
class
QUOTIENT_API
SsoSession :
public
QObject {
30
Q_OBJECT
31
Q_PROPERTY(QUrl ssoUrl READ ssoUrl CONSTANT)
32
Q_PROPERTY(QUrl callbackUrl READ callbackUrl CONSTANT)
33
public
:
34
SsoSession(Connection* connection,
const
QString& initialDeviceName,
35
const
QString& deviceId = {});
36
~SsoSession() override =
default
;
37
38
QUrl ssoUrl()
const
;
39
QUrl callbackUrl()
const
;
40
41
private
:
42
class
Private;
43
ImplPtr<Private> d;
44
};
45
}
// namespace Quotient
Quotient
ssosession.h
Generated by
1.9.1