INNER CODE UNIT · Rust
migration_token
modelcontextprotocol/rust-sdk · conformance/src/bin/client.rs:568
async fn migration_token(
server_url: &str,
store: &InMemoryCredentialStore,
) -> anyhow::Result<String> {
let mut manager = AuthorizationManager::new(server_url).await?;
manager.set_credential_store(store.clone());
if manager.initialize_from_store().await? {
return Ok(manager.get_access_token().await?);
}
let challenge = initialize_challenge(server_url, conformance_lifecycle()).await?;
let resolution = manager
.resolve_metadata_from_challenge(challenge.as_deref())
.await?;
manager.set_metadata(resolution.metadata);
manager
.register_client("conformance-client", REDIRECT_URI, &[])