libkazv
Kazv::Api::LoginJob Class Reference

Authenticates the user. More...

#include <login.hpp>

Inheritance diagram for Kazv::Api::LoginJob:
Collaboration diagram for Kazv::Api::LoginJob:

Classes

class  JobResponse
 

Public Member Functions

 LoginJob (std::string serverUrl, std::string type, std::optional< UserIdentifier > identifier=std::nullopt, std::optional< std::string > password=std::nullopt, std::optional< std::string > token=std::nullopt, std::optional< std::string > deviceId=std::nullopt, std::optional< std::string > initialDeviceDisplayName=std::nullopt, std::optional< bool > refreshToken=std::nullopt)
 Authenticates the user. More...
 
LoginJob withData (JsonWrap j) &&
 
LoginJob 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 ()
 
static BaseJob::Body buildBody (std::string type, std::optional< UserIdentifier > identifier, std::optional< std::string > password, std::optional< std::string > token, std::optional< std::string > deviceId, std::optional< std::string > initialDeviceDisplayName, std::optional< bool > refreshToken)
 
- 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

Authenticates the user.

Authenticates the user, and issues an access token they can use to authorize themself in subsequent requests.

If the client does not supply a device_id, the server must auto-generate one.

The returned access token must be associated with the device_id supplied by the client or generated by the server. The server may invalidate any access token previously associated with that device. See Relationship between access tokens and devices.

Constructor & Destructor Documentation

◆ LoginJob()

Kazv::Api::LoginJob::LoginJob ( std::string  serverUrl,
std::string  type,
std::optional< UserIdentifier identifier = std::nullopt,
std::optional< std::string >  password = std::nullopt,
std::optional< std::string >  token = std::nullopt,
std::optional< std::string >  deviceId = std::nullopt,
std::optional< std::string >  initialDeviceDisplayName = std::nullopt,
std::optional< bool >  refreshToken = std::nullopt 
)
explicit

Authenticates the user.

Parameters
typeThe login type being used.
identifierAuthenticates the user, and issues an access token they can use to authorize themself in subsequent requests.

If the client does not supply a device_id, the server must auto-generate one.

The returned access token must be associated with the device_id supplied by the client or generated by the server. The server may invalidate any access token previously associated with that device. See Relationship between access tokens and devices.

Parameters
passwordRequired when type is m.login.password. The user's password.
tokenRequired when type is m.login.token. Part of Token-based login.
deviceIdID of the client device. If this does not correspond to a known client device, a new device will be created. The given device ID must not be the same as a cross-signing key ID. The server will auto-generate a device_id if this is not specified.
initialDeviceDisplayNameA display name to assign to the newly-created device. Ignored if device_id corresponds to a known device.
refreshTokenIf true, the client supports refresh tokens.

Member Function Documentation

◆ buildBody()

BaseJob::Body Kazv::Api::LoginJob::buildBody ( std::string  type,
std::optional< UserIdentifier identifier,
std::optional< std::string >  password,
std::optional< std::string >  token,
std::optional< std::string >  deviceId,
std::optional< std::string >  initialDeviceDisplayName,
std::optional< bool >  refreshToken 
)
static

◆ buildQuery()

BaseJob::Query Kazv::Api::LoginJob::buildQuery ( )
static

◆ needsAuth()

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

◆ withData() [1/2]

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

◆ withData() [2/2]

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

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