pub struct LoginClient {
pub(crate) client: Client,
}Expand description
Client for authenticating Bitwarden users.
Handles unauthenticated operations to obtain access tokens from the Identity API. After successful authentication, use the returned tokens to create an authenticated core client.
§Lifecycle
- Create
LoginClientviaAuthClient - Call login method
- Use returned tokens with authenticated core client
§Password Login Example
// Create auth client
let client = Client::new(None);
let auth_client = AuthClient::new(client);
// Configure client settings and create login client
let settings = ClientSettings {
identity_url: "https://identity.bitwarden.com".to_string(),
api_url: "https://api.bitwarden.com".to_string(),
user_agent: "MyApp/1.0".to_string(),
device_type: DeviceType::SDK,
device_identifier: None,
bitwarden_client_version: None,
bitwarden_package_type: None,
};
let login_client = auth_client.login(settings);
// Get user's KDF config
let prelogin = login_client.get_password_prelogin(email.clone()).await?;
// Login with credentials
let response = login_client.login_via_password(PasswordLoginRequest {
login_request: LoginRequest {
client_id: "connector".to_string(),
device: LoginDeviceRequest {
device_type: DeviceType::SDK,
device_identifier: "device-id".to_string(),
device_name: "My Device".to_string(),
device_push_token: None,
},
},
email,
password,
prelogin_response: prelogin,
}).await?;
// Use tokens from response for authenticated requests
match response {
LoginResponse::Authenticated(success) => {
let access_token = success.access_token;
// Use access_token for authenticated requests
}
}Fields§
§client: ClientImplementations§
Source§impl LoginClient
impl LoginClient
Source§impl LoginClient
impl LoginClient
Sourcepub async fn login_via_password(
&self,
request: PasswordLoginRequest,
) -> Result<LoginResponse, PasswordLoginError>
pub async fn login_via_password( &self, request: PasswordLoginRequest, ) -> Result<LoginResponse, PasswordLoginError>
Authenticates a user via email and master password.
Derives the master password hash using KDF settings from prelogin, then sends the authentication request to obtain access tokens and vault keys.
Source§impl LoginClient
impl LoginClient
Sourcepub async fn get_password_prelogin(
&self,
email: String,
) -> Result<PasswordPreloginResponse, PasswordPreloginError>
pub async fn get_password_prelogin( &self, email: String, ) -> Result<PasswordPreloginResponse, PasswordPreloginError>
Retrieves the data required before authenticating with a password. This includes the user’s KDF configuration needed to properly derive the master key.
Trait Implementations§
Source§impl From<LoginClient> for JsValue
impl From<LoginClient> for JsValue
Source§fn from(value: LoginClient) -> Self
fn from(value: LoginClient) -> Self
Converts to this type from the input type.
Source§impl FromWasmAbi for LoginClient
impl FromWasmAbi for LoginClient
Source§impl IntoWasmAbi for LoginClient
impl IntoWasmAbi for LoginClient
Source§impl<UT> LiftRef<UT> for LoginClient
impl<UT> LiftRef<UT> for LoginClient
type LiftType = Arc<LoginClient>
Source§impl LongRefFromWasmAbi for LoginClient
impl LongRefFromWasmAbi for LoginClient
Source§impl<UT> LowerError<UT> for LoginClient
impl<UT> LowerError<UT> for LoginClient
Source§fn lower_error(obj: Self) -> RustBuffer
fn lower_error(obj: Self) -> RustBuffer
Lower this value for scaffolding function return Read more
Source§impl<UT> LowerReturn<UT> for LoginClient
impl<UT> LowerReturn<UT> for LoginClient
Source§type ReturnType = <Arc<LoginClient> as LowerReturn<UniFfiTag>>::ReturnType
type ReturnType = <Arc<LoginClient> as LowerReturn<UniFfiTag>>::ReturnType
The type that should be returned by scaffolding functions for this type. Read more
Source§fn lower_return(obj: Self) -> Result<Self::ReturnType, RustCallError>
fn lower_return(obj: Self) -> Result<Self::ReturnType, RustCallError>
Lower the return value from an scaffolding call Read more
§fn handle_failed_lift(
error: LiftArgsError,
) -> Result<Self::ReturnType, RustCallError>
fn handle_failed_lift( error: LiftArgsError, ) -> Result<Self::ReturnType, RustCallError>
Lower the return value for failed argument lifts Read more
Source§impl OptionFromWasmAbi for LoginClient
impl OptionFromWasmAbi for LoginClient
Source§impl OptionIntoWasmAbi for LoginClient
impl OptionIntoWasmAbi for LoginClient
Source§impl RefFromWasmAbi for LoginClient
impl RefFromWasmAbi for LoginClient
Source§type Anchor = RcRef<LoginClient>
type Anchor = RcRef<LoginClient>
The type that holds the reference to
Self for the duration of the
invocation of the function that has an &Self parameter. This is
required to ensure that the lifetimes don’t persist beyond one function
call, and so that they remain anonymous.Source§impl RefMutFromWasmAbi for LoginClient
impl RefMutFromWasmAbi for LoginClient
Source§impl TryFromJsValue for LoginClient
impl TryFromJsValue for LoginClient
Source§impl<UT> TypeId<UT> for LoginClient
impl<UT> TypeId<UT> for LoginClient
const TYPE_ID_META: MetadataBuffer
Source§impl VectorFromWasmAbi for LoginClient
impl VectorFromWasmAbi for LoginClient
type Abi = <Box<[JsValue]> as FromWasmAbi>::Abi
unsafe fn vector_from_abi(js: Self::Abi) -> Box<[LoginClient]>
Source§impl VectorIntoWasmAbi for LoginClient
impl VectorIntoWasmAbi for LoginClient
type Abi = <Box<[JsValue]> as IntoWasmAbi>::Abi
fn vector_into_abi(vector: Box<[LoginClient]>) -> Self::Abi
Source§impl WasmDescribe for LoginClient
impl WasmDescribe for LoginClient
Source§impl WasmDescribeVector for LoginClient
impl WasmDescribeVector for LoginClient
impl SupportsConstructor for LoginClient
impl SupportsInstanceProperty for LoginClient
impl SupportsStaticProperty for LoginClient
Auto Trait Implementations§
impl Freeze for LoginClient
impl !RefUnwindSafe for LoginClient
impl Send for LoginClient
impl Sync for LoginClient
impl Unpin for LoginClient
impl !UnwindSafe for LoginClient
Blanket Implementations§
§impl<T> AnySync for T
impl<T> AnySync 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
Mutably borrows from an owned value. Read more
§impl<T> CompatExt for T
impl<T> CompatExt for T
§impl<T, UT> HandleAlloc<UT> for T
impl<T, UT> HandleAlloc<UT> for T
§fn new_handle(value: Arc<T>) -> Handle
fn new_handle(value: Arc<T>) -> Handle
Create a new handle for an Arc value Read more
§unsafe fn clone_handle(handle: Handle) -> Handle
unsafe fn clone_handle(handle: Handle) -> Handle
Clone a handle Read more
§unsafe fn consume_handle(handle: Handle) -> Arc<T>
unsafe fn consume_handle(handle: Handle) -> Arc<T>
Consume a handle, getting back the initial
Arc<> Read more§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§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>
Converts
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>
Converts
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 more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
Source§impl<T> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
impl<T> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
Source§type Abi = <T as IntoWasmAbi>::Abi
type Abi = <T as IntoWasmAbi>::Abi
Same as
IntoWasmAbi::AbiSource§fn return_abi(self) -> <T as ReturnWasmAbi>::Abi
fn return_abi(self) -> <T as ReturnWasmAbi>::Abi
Same as
IntoWasmAbi::into_abi, except that it may throw and never
return in the case of Err.