forked from boostorg/mqtt5
Summary: resolves T13155 Reviewers: ivica Reviewed By: ivica Subscribers: miljen, iljazovic Maniphest Tasks: T13155 Differential Revision: https://repo.mireo.local/D26681
51 lines
2.2 KiB
Plaintext
51 lines
2.2 KiB
Plaintext
[/
|
|
Copyright (c) 2023 Mireo
|
|
|
|
Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
|
]
|
|
|
|
[section:auth_props AUTH properties]
|
|
The last field in the Variable header of __AUTH__ packet is a set of Properties.
|
|
A set contains a Property Length followed by the Properties.
|
|
A Property consists of an Identifier and a value.
|
|
|
|
This section lists all possible __AUTH__ Properties and describes their usage:
|
|
|
|
[table:auth_props AUTH properties
|
|
[[Identifier] [Value type] [Description]]
|
|
[[authentication_method] [`std::string`] [A UTF-8 Encoded String containing the name of the authentication method used for extended authentication.]]
|
|
[[authentication_data] [`std::string`] [Binary Data containing authentication data. The contents of the data are defined by the authentication method.]]
|
|
[[reason_string] [`std::string`] [A UTF-8 Encoded String representing the reason associated with this response.]]
|
|
[[user_property] [`std::vector<std::string>`] [A list of name, value pairs (__UTF8_STRING_PAIR__) defining User Properties.
|
|
This property may be used to provide additional diagnostic or other information. ]]
|
|
]
|
|
|
|
[h4 Usage]
|
|
After obtaining an instance of `async_mqtt5::auth_props`, the subscript operator can be used to access a Property.
|
|
|
|
The Identifiers listed in the table above are available within the `async_mqtt5::prop` namespace for Property access.
|
|
|
|
[h4 Example]
|
|
|
|
The following example shows how to set a Property value:
|
|
|
|
[!c++]
|
|
async_mqtt5::auth_props props;
|
|
props[async_mqtt5::prop::authentication_method] = "SCRAM-SHA-1";
|
|
props[async_mqtt5::prop::authentication_data] = "data";
|
|
|
|
The following example shows how to retrieve a Property value:
|
|
|
|
[note When retrieving a property value, the subscript operator will consistently return a `std::optional` of the value type for all properties,
|
|
except for `async_mqtt5::prop::user_property`, where it will return an instance of its value type, `std::vector<std::string>`.]
|
|
|
|
[!c++]
|
|
std::optional<std::string> auth_data = props[async_mqtt5::prop::authentication_data];
|
|
if (auth_data.has_value())
|
|
// authentication data property was previously set
|
|
else
|
|
// authentication data property was not set
|
|
|
|
[endsect]
|