#identity #internet-computer #icp #front-end #api-bindings

ic-auth-client

A client library for Internet Computer identity authentication services

2 unstable releases

0.2.0 Sep 11, 2024
0.1.1 Aug 24, 2024
0.1.0 Aug 24, 2024
0.0.1 Aug 24, 2024

#259 in Authentication

Download history 267/week @ 2024-08-20 19/week @ 2024-08-27 173/week @ 2024-09-10

459 downloads per month

Apache-2.0

76KB
1.5K SLoC

ic-auth-client-rs

Port of @dfinity/auth-client for the Rust programming language.

Installation

Add the following to your Cargo.toml:

[dependencies]
ic-auth-client = "0.1"

In the browser:

use ic_auth_client::AuthClient;

To get started with auth client, run

let mut auth_client = AuthClient::builder()
    // any configurations
    .build()
    .await;

The auth_client can log in with

use ic_auth_client::AuthClientLoginOptions;

let options = AuthClientLoginOptions::builder()
    .max_time_to_live(7 * 24 * 60 * 60 * 1000 * 1000 * 1000)
    .on_success(|auth_success| {
        // handle success
    })
    .build();

auth_client.login_with_options(options);

It opens an identity.ic0.app window, saves your delegation to localStorage, and then sets you up with an identity.

Then, you can use that identity to make authenticated calls using the ic-agent::Agent.

let identity = auth_client.identity();

let agent = Agent::builder()
    .with_url(url)
    .with_identity(identity)
    .build()?;

Dependencies

~26–40MB
~753K SLoC