libkazv
Kazv::Api::RedirectToIdPJob Class Reference

Redirect the user's browser to the SSO interface for an IdP. More...

#include <sso_login_redirect.hpp>

Inheritance diagram for Kazv::Api::RedirectToIdPJob:
Collaboration diagram for Kazv::Api::RedirectToIdPJob:

Public Member Functions

 RedirectToIdPJob (std::string serverUrl, std::string idpId, std::string redirectUrl)
 Redirect the user's browser to the SSO interface for an IdP. More...
 
RedirectToIdPJob withData (JsonWrap j) &&
 
RedirectToIdPJob withData (JsonWrap j) const &
 
- Public Member Functions inherited from Kazv::BaseJob
 BaseJob (std::string serverUrl, std::string requestUrl, Method method, std::string jobId, std::string token={}, ReturnType returnType=ReturnType::Json, Body body=EmptyBody{}, Query query={}, Header header={}, std::optional< FileDesc > responseFile=std::nullopt)
 
 ~BaseJob ()
 
bool shouldReturnJson () const
 
std::string url () const
 
Body requestBody () const
 
Header requestHeader () const
 
ReturnType returnType () const
 
Query requestQuery () const
 returns the non-encoded query as an array of pairs More...
 
Method requestMethod () const
 
Response genResponse (Response r) const
 
BaseJob withData (JsonWrap j) &&
 
BaseJob withData (JsonWrap j) const &
 
BaseJob withQueue (std::string id, JobQueuePolicy policy=AlwaysContinue) &&
 
BaseJob withQueue (std::string id, JobQueuePolicy policy=AlwaysContinue) const &
 
json dataJson (const std::string &key) const
 
std::string dataStr (const std::string &key) const
 
std::string jobId () const
 
std::optional< std::string > queueId () const
 
JobQueuePolicy queuePolicy () const
 
std::optional< FileDescresponseFile () const
 

Static Public Member Functions

static constexpr auto needsAuth ()
 
static BaseJob::Query buildQuery (std::string redirectUrl)
 
static BaseJob::Body buildBody (std::string idpId, std::string redirectUrl)
 
- Static Public Member Functions inherited from Kazv::BaseJob
static bool contentTypeMatches (immer::array< std::string > expected, std::string actual)
 

Additional Inherited Members

- Public Types inherited from Kazv::BaseJob
enum  ReturnType { Json, File }
 
using Method = std::variant< Get, Post, Put, Delete >
 
using Body = ::Kazv::Body
 
using BytesBody = ::Kazv::BytesBody
 
using JsonBody = ::Kazv::JsonBody
 
using EmptyBody = ::Kazv::EmptyBody
 
using Header = ::Kazv::Header
 
using Response = ::Kazv::Response
 
- Static Public Attributes inherited from Kazv::BaseJob
static Get GET {}
 
static Post POST {}
 
static Put PUT {}
 
static Delete DELETE {}
 
- Protected Member Functions inherited from Kazv::BaseJob
void attachData (JsonWrap data)
 

Detailed Description

Redirect the user's browser to the SSO interface for an IdP.

This endpoint is the same as /login/sso/redirect, though with an IdP ID from the original identity_providers array to inform the server of which IdP the client/user would like to continue with.

The server MUST respond with an HTTP redirect to the SSO interface for that IdP.

Constructor & Destructor Documentation

◆ RedirectToIdPJob()

Kazv::Api::RedirectToIdPJob::RedirectToIdPJob ( std::string  serverUrl,
std::string  idpId,
std::string  redirectUrl 
)
explicit

Redirect the user's browser to the SSO interface for an IdP.

Parameters
idpIdThe id of the IdP from the m.login.sso identity_providers array denoting the user's selection.
redirectUrlURI to which the user will be redirected after the homeserver has authenticated the user with SSO.

Member Function Documentation

◆ buildBody()

BaseJob::Body Kazv::Api::RedirectToIdPJob::buildBody ( std::string  idpId,
std::string  redirectUrl 
)
static

◆ buildQuery()

BaseJob::Query Kazv::Api::RedirectToIdPJob::buildQuery ( std::string  redirectUrl)
static

◆ needsAuth()

static constexpr auto Kazv::Api::RedirectToIdPJob::needsAuth ( )
inlinestaticconstexpr

◆ withData() [1/2]

RedirectToIdPJob Kazv::Api::RedirectToIdPJob::withData ( JsonWrap  j) &&

◆ withData() [2/2]

RedirectToIdPJob Kazv::Api::RedirectToIdPJob::withData ( JsonWrap  j) const &

The documentation for this class was generated from the following files: