1// Copyright (C) 2024 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
3
4#ifndef QOAUTHURISCHEMEREPLYHANDLER_H
5#define QOAUTHURISCHEMEREPLYHANDLER_H
6
7#include <QtNetworkAuth/qoauthglobal.h>
8#include <QtNetworkAuth/qoauthoobreplyhandler.h>
9
10#include <QtCore/qurl.h>
11
12QT_BEGIN_NAMESPACE
13
14class QOAuthUriSchemeReplyHandlerPrivate;
15class Q_OAUTH_EXPORT QOAuthUriSchemeReplyHandler : public QOAuthOobReplyHandler
16{
17 Q_OBJECT
18 Q_PROPERTY(QUrl redirectUrl READ redirectUrl WRITE setRedirectUrl NOTIFY redirectUrlChanged FINAL)
19public:
20 Q_IMPLICIT QOAuthUriSchemeReplyHandler() : QOAuthUriSchemeReplyHandler(nullptr) {}
21 explicit QOAuthUriSchemeReplyHandler(QObject *parent);
22 explicit QOAuthUriSchemeReplyHandler(const QUrl &redirectUrl, QObject *parent = nullptr);
23 ~QOAuthUriSchemeReplyHandler() override;
24
25 QString callback() const override;
26
27 void setRedirectUrl(const QUrl &url);
28 QUrl redirectUrl() const;
29
30 bool handleAuthorizationRedirect(const QUrl &url);
31
32 bool listen();
33 void close();
34 bool isListening() const noexcept;
35
36Q_SIGNALS:
37 void redirectUrlChanged();
38
39private:
40 Q_DISABLE_COPY(QOAuthUriSchemeReplyHandler)
41 Q_DECLARE_PRIVATE(QOAuthUriSchemeReplyHandler)
42 // Private slot for providing a callback slot for QDesktopServices::setUrlHandler
43 Q_PRIVATE_SLOT(d_func(), bool _q_handleRedirectUrl(const QUrl &url))
44};
45
46QT_END_NAMESPACE
47
48#endif // QOAUTHURISCHEMEREPLYHANDLER_H
49

source code of qtnetworkauth/src/oauth/qoauthurischemereplyhandler.h