junobuild-auth 0.4.2

Authentication toolkit for Juno.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use crate::openid::jwkset::types::interface::GetOpenIdCertificateArgs;
use crate::openid::types::provider::{OpenIdCertificate, OpenIdProvider};
use candid::Principal;
use ic_cdk::call::Call;
use junobuild_shared::ic::DecodeCandid;

pub async fn fetch_openid_certificate(
    provider: &OpenIdProvider,
    observatory: Principal,
) -> Result<Option<OpenIdCertificate>, String> {
    let certificate = Call::bounded_wait(observatory, "get_openid_certificate")
        .with_arg(GetOpenIdCertificateArgs::from(provider))
        .await
        .decode_candid::<Option<OpenIdCertificate>>()?;

    Ok(certificate)
}