Struct rustwt::id_token::IDTokenBuilder
[−]
[src]
pub struct IDTokenBuilder { /* fields omitted */ }
Utility structure for encoding ID-Tokens.
Example
use rustwt::id_token::{IDToken,IDTokenDecoder}; use rustwt::Algorithm; static EC_PRIVATE_KEY: &str = include_str!("../test/ec_x9_62_prime256v1.private.key.pem"); static EC_PUBLIC_KEY: &str = include_str!("../test/ec_x9_62_prime256v1.public.key.pem"); let id_token = IDToken::build( "https://authority.example.org/auth", "user123", &["rp123"], 60 * 2, ).acr("urn:mace:incommon:iap:silver") .amr(&["password"]) .azp("rp123") .sign_with_pem(EC_PRIVATE_KEY, Algorithm::ES256) .expect("signing should work"); let id_token_decoder = IDTokenDecoder::from_pem(EC_PUBLIC_KEY, "https://authority.example.org/auth", "rp123") .expect("should not fail"); let token_struct = id_token_decoder.decode(id_token).expect( "verification should not fail", ); assert_eq!(token_struct.acr().unwrap(), "urn:mace:incommon:iap:silver"); assert_eq!(token_struct.amr()[0], "password"); assert_eq!(token_struct.azp().unwrap(), "rp123");
Methods
impl IDTokenBuilder
[src]
fn auth_time(self, time: u64) -> IDTokenBuilder
[src]
fn not_before(self, time: u64) -> IDTokenBuilder
[src]
fn nonce<T: Into<String>>(self, nonce: T) -> IDTokenBuilder
[src]
fn acr<T: Into<String>>(self, value: T) -> IDTokenBuilder
[src]
fn amr(self, value: &[&str]) -> IDTokenBuilder
[src]
fn azp<T: Into<String>>(self, value: T) -> IDTokenBuilder
[src]
fn to_token_structure(self, alg: Algorithm) -> IDToken
[src]
fn sign_with_pem<T: AsRef<[u8]>>(
self,
pem: T,
alg: Algorithm
) -> Result<String, Error>
[src]
self,
pem: T,
alg: Algorithm
) -> Result<String, Error>
fn sign_with_private_key(
self,
key: PKey,
alg: Algorithm
) -> Result<String, Error>
[src]
self,
key: PKey,
alg: Algorithm
) -> Result<String, Error>
fn sign_with_hmac<T: AsRef<[u8]>>(
self,
key: T,
alg: Algorithm
) -> Result<String, Error>
[src]
self,
key: T,
alg: Algorithm
) -> Result<String, Error>