// Copyright (C) 2017 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only

/*!
    \page qtnetworkauth-index.html
    \title Qt Network Authorization
    \brief Provides network authorization capabilities (OAuth).

    Qt Network Authorization provides a set of APIs that enable Qt
    applications to implement common authorization and authentication protocols.
    For example, an application can implement access controls such as providing
    limited access to online accounts and HTTP services without exposing user
    passwords.

    This module focuses on \l{OAuth 2.0} and provides limited support for
    \l{OpenID}. Refer to the section below about
    \l{Supported Authorization and Authentication Protocols}
      {supported protocols}.

    \section1 Using the Module

    Using a Qt module requires linking against the module library, either
    directly or through other dependencies. Several build tools have dedicated
    support for this, including CMake and qmake.

    \section2 Building with CMake

    Use the \c find_package() command to locate the needed module components in
    the Qt6 package:

    \badcode
    find_package(Qt6 REQUIRED COMPONENTS NetworkAuth)
    target_link_libraries(mytarget PRIVATE Qt6::NetworkAuth)
    \endcode

    See also the \l{Build with CMake} overview.

    \section2 Building with qmake

    To configure the module for building with qmake, add the module as a value
    of the QT variable in the project's .pro file:

    \badcode
    QT += networkauth
    \endcode

    \section1 Supported Authorization and Authentication Protocols

    Qt Network Authorization module supports functionalities from:

    \list
      \li \l {OAuth 1}
      \li \l {OAuth 2.0}
      \li \l {OpenID}
      \li \l {OpenID Connect}
    \endlist

    These systems use a trusted \e {authorization server} for issuing access
    tokens so that users do not send credentials to resources and resource
    owners do not directly manage user credentials. For example, a user of a
    cloud-based photo album website does not have to worry about passing their
    credentials to the website. Instead, the credentials are
    managed by a trusted authorization service through a web interface.

    \section1 Articles and Guides

    \list
        \li \l {OAuth 2.0 Overview}
        \li \l {Qt OAuth2 Browser Support}
    \endlist

    \section1 Licenses

    Qt Network Authorization is available under commercial licenses from
    \l{The Qt Company}. In addition, it is available under the
    \l{GNU General Public License, version 3}.
    See \l{Qt Licensing} for further details.

    \section1 Examples
    \list
      \li \l {Qt Network Authorization Examples}
    \endlist

    \section1 API Reference
    \list
      \li \l{Qt Network Authorization C++ Classes}{C++ Classes}
    \endlist
*/

/*!
    \module QtNetworkAuth
    \title Qt Network Authorization C++ Classes
    \ingroup modules
    \qtcmakepackage NetworkAuth
    \qtvariable networkauth
    \brief Provides classes for network authorization support (OAuth).
*/
