MCPcopy Create free account
hub / github.com/Roy3838/Observer / get_valid_token

Method get_valid_token

cli/src/auth.rs:100–121  ·  view source on GitHub ↗

Get valid access token, refreshing if needed

(&mut self)

Source from the content-addressed store, hash-verified

98
99 /// Get valid access token, refreshing if needed
100 pub async fn get_valid_token(&mut self) -> Result<String, Box<dyn std::error::Error>> {
101 // If not expired, return current token
102 if !self.is_expired() {
103 return Ok(self.access_token.clone());
104 }
105
106 // Try to refresh
107 if let Some(ref refresh_token) = self.refresh_token {
108 match refresh_tokens(refresh_token).await {
109 Ok(new_tokens) => {
110 *self = new_tokens;
111 self.save()?;
112 return Ok(self.access_token.clone());
113 }
114 Err(e) => {
115 eprintln!("Token refresh failed: {}. Please run 'observe login' again.", e);
116 }
117 }
118 }
119
120 Err("Token expired. Please run 'observe login'.".into())
121 }
122}
123
124/// Start the device code login flow

Callers 2

mainFunction · 0.80
wait_for_whitelistFunction · 0.80

Calls 3

refresh_tokensFunction · 0.85
is_expiredMethod · 0.80
saveMethod · 0.45

Tested by

no test coverage detected