libQuotient
A Qt library for building matrix clients
sso_login_redirect.h
Go to the documentation of this file.
1 // THIS FILE IS GENERATED - ANY EDITS WILL BE OVERWRITTEN
2 
3 #pragma once
4 
5 #include <Quotient/jobs/basejob.h>
6 
7 namespace Quotient {
8 
9 //! \brief Redirect the user's browser to the SSO interface.
10 //!
11 //! A web-based Matrix client should instruct the user's browser to
12 //! navigate to this endpoint in order to log in via SSO.
13 //!
14 //! The server MUST respond with an HTTP redirect to the SSO interface,
15 //! or present a page which lets the user select an IdP to continue
16 //! with in the event multiple are supported by the server.
17 class QUOTIENT_API RedirectToSSOJob : public BaseJob {
18 public:
19  //! \param redirectUrl
20  //! URI to which the user will be redirected after the homeserver has
21  //! authenticated the user with SSO.
22  explicit RedirectToSSOJob(const QString& redirectUrl);
23 
24  //! \brief Construct a URL without creating a full-fledged job object
25  //!
26  //! This function can be used when a URL for RedirectToSSOJob
27  //! is necessary but the job itself isn't.
28  static QUrl makeRequestUrl(const HomeserverData& hsData, const QString& redirectUrl);
29 };
30 
31 //! \brief Redirect the user's browser to the SSO interface for an IdP.
32 //!
33 //! This endpoint is the same as `/login/sso/redirect`, though with an
34 //! IdP ID from the original `identity_providers` array to inform the
35 //! server of which IdP the client/user would like to continue with.
36 //!
37 //! The server MUST respond with an HTTP redirect to the SSO interface
38 //! for that IdP.
39 class QUOTIENT_API RedirectToIdPJob : public BaseJob {
40 public:
41  //! \param idpId
42  //! The `id` of the IdP from the `m.login.sso` `identity_providers`
43  //! array denoting the user's selection.
44  //!
45  //! \param redirectUrl
46  //! URI to which the user will be redirected after the homeserver has
47  //! authenticated the user with SSO.
48  explicit RedirectToIdPJob(const QString& idpId, const QString& redirectUrl);
49 
50  //! \brief Construct a URL without creating a full-fledged job object
51  //!
52  //! This function can be used when a URL for RedirectToIdPJob
53  //! is necessary but the job itself isn't.
54  static QUrl makeRequestUrl(const HomeserverData& hsData, const QString& idpId,
55  const QString& redirectUrl);
56 };
57 
58 } // namespace Quotient