A library for ATProtocol identities.

refactor: OAuth token response may have optional refresh token.

Changed files
+12 -7
crates
atproto-oauth
atproto-oauth-aip
atproto-oauth-axum
+1 -2
crates/atproto-oauth-aip/src/lib.rs
··· 80 80 //! let session = session_exchange( 81 81 //! &http_client, 82 82 //! &protected_resource.resource, 83 - //! &token_response.access_token, 84 - //! &None 83 + //! &token_response.access_token 85 84 //! ).await?; 86 85 //! # Ok(()) 87 86 //! # }
+1 -2
crates/atproto-oauth-aip/src/workflow.rs
··· 99 99 //! let session = session_exchange( 100 100 //! &http_client, 101 101 //! &protected_resource.resource, 102 - //! &token_response.access_token, 103 - //! &None 102 + //! &token_response.access_token 104 103 //! ).await?; 105 104 //! # Ok(()) 106 105 //! # }
+4 -1
crates/atproto-oauth-axum/src/bin/atproto-oauth-tool.rs
··· 545 545 println!("\nOAuth Token Refresh Response:"); 546 546 println!("Access Token: {}", token_response.access_token); 547 547 println!("Token Type: {}", token_response.token_type); 548 - println!("Refresh Token: {}", &token_response.refresh_token); 548 + println!( 549 + "Refresh Token: {}", 550 + token_response.refresh_token.as_deref().unwrap_or("N/A") 551 + ); 549 552 println!("Scope: {}", token_response.scope); 550 553 println!("Expires In: {} seconds", token_response.expires_in); 551 554 println!(
+4 -1
crates/atproto-oauth-axum/src/handle_complete.rs
··· 133 133 document.id, 134 134 oauth_request.issuer, 135 135 token_response.access_token, 136 - token_response.refresh_token, 136 + token_response 137 + .refresh_token 138 + .clone() 139 + .unwrap_or_else(|| "N/A".to_string()), 137 140 token_response.token_type, 138 141 token_response.expires_in, 139 142 token_response.scope,
+2 -1
crates/atproto-oauth/src/workflow.rs
··· 210 210 pub token_type: String, 211 211 212 212 /// The refresh token that can be used to obtain new access tokens. 213 - pub refresh_token: String, 213 + /// Not all token responses include a refresh token. 214 + pub refresh_token: Option<String>, 214 215 215 216 /// The scope of access granted by the access token. 216 217 #[cfg_attr(feature = "zeroize", zeroize(skip))]