pub enum QrAuthMessage {
LoginProtocols(LoginProtocolsMessage),
LoginProtocol {
protocol: LoginProtocolData,
device_id: String,
},
LoginProtocolAccepted,
LoginSuccess,
LoginDeclined,
LoginFailure {
reason: LoginFailureReason,
homeserver: Option<String>,
},
LoginSecrets(SecretsBundle),
}e2e-encryption only.Expand description
Messages that will be exchanged over the SecureChannel to log in a new
device using a QR code.
Variants§
LoginProtocols(LoginProtocolsMessage)
Message declaring the available protocols for sign in. Sent by the existing device.
LoginProtocol
Message declaring which protocols from the previous m.login.protocols
message the new device has picked. Sent by the new device.
Fields
protocol: LoginProtocolDataThe protocol the new device has picked, along with the data specific to that protocol.
LoginProtocolAccepted
Message declaring that the protocol in the previous m.login.protocol
message was accepted. Sent by the existing device.
LoginSuccess
Message that informs the existing device that it successfully obtained an access token from the OAuth 2.0 server. Sent by the new device.
LoginDeclined
Message that informs the existing device that the OAuth 2.0 server has declined to give us an access token, i.e. because the user declined the log in. Sent by the new device.
LoginFailure
Message signaling that a failure happened during the login. Can be sent by either device.
Fields
reason: LoginFailureReasonThe claimed reason for the login failure.
homeserver: Option<String>The homeserver the new device should use, optionally sent by the existing device so the user doesn’t have to type it in.
The MSC defines this as a server name, but older implementations
send a homeserver URL, so both are accepted as is. Either form can
be passed to ClientBuilder::server_name_or_homeserver_url().
LoginSecrets(SecretsBundle)
Message containing end-to-end encryption related secrets, the new device can use these secrets to mark itself as verified, connect to a room key backup, and login other devices via a QR login. Sent by the existing device.
Trait Implementations§
Source§impl Debug for QrAuthMessage
impl Debug for QrAuthMessage
Source§impl<'de> Deserialize<'de> for QrAuthMessage
impl<'de> Deserialize<'de> for QrAuthMessage
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for QrAuthMessage
impl RefUnwindSafe for QrAuthMessage
impl Send for QrAuthMessage
impl Sync for QrAuthMessage
impl Unpin for QrAuthMessage
impl UnsafeUnpin for QrAuthMessage
impl UnwindSafe for QrAuthMessage
Blanket Implementations§
impl<T> AsyncTraitDeps for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> CompatExt for T
impl<T> CompatExt for T
Source§impl<T> DeserialiseFromJs for Twhere
T: DeserializeOwned,
impl<T> DeserialiseFromJs for Twhere
T: DeserializeOwned,
Source§fn deserialise_from_js(js: JsValue) -> Result<T, Error>
fn deserialise_from_js(js: JsValue) -> Result<T, Error>
serde_wasm_bindgen.impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> DropFlavorWrapper<T> for T
impl<T> DropFlavorWrapper<T> for T
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> ErasedDestructor for Twhere
T: 'static,
impl<T> Fruit for T
Source§impl<T, UT> HandleAlloc<UT> for T
impl<T, UT> HandleAlloc<UT> for T
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreimpl<T> JsonCastable<CanonicalJsonValue> for T
impl<T> JsonCastable<Value> for T
impl<T> MaybeSendSync for T
Source§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
impl<T> SendOutsideWasm for Twhere
T: Send,
Source§impl<T> SerialiseToJs for Twhere
T: Serialize,
impl<T> SerialiseToJs for Twhere
T: Serialize,
Source§fn serialise_to_js(&self) -> Result<JsValue, Error>
fn serialise_to_js(&self) -> Result<JsValue, Error>
JsValue, most likely using serde_wasm_bindgen.