aboutsummaryrefslogtreecommitdiffstats
path: root/teleterm/src/oauth.rs
diff options
context:
space:
mode:
Diffstat (limited to 'teleterm/src/oauth.rs')
-rw-r--r--teleterm/src/oauth.rs50
1 files changed, 14 insertions, 36 deletions
diff --git a/teleterm/src/oauth.rs b/teleterm/src/oauth.rs
index 0d55a9f..e692a1e 100644
--- a/teleterm/src/oauth.rs
+++ b/teleterm/src/oauth.rs
@@ -29,11 +29,10 @@ pub trait Oauth {
auth_url.to_string()
}
- fn get_tokens_from_auth_code(
+ fn get_access_token_from_auth_code(
&self,
code: &str,
- ) -> Box<dyn futures::Future<Item = (String, String), Error = Error> + Send>
- {
+ ) -> Box<dyn futures::Future<Item = String, Error = Error> + Send> {
let token_cache_file = self.server_token_file(false).unwrap();
let fut = self
.client()
@@ -44,24 +43,16 @@ pub trait Oauth {
Error::ExchangeCode { msg }
})
.and_then(|token| {
- let access_token = token.access_token().secret().to_string();
- let refresh_token =
- token.refresh_token().unwrap().secret().to_string();
- cache_refresh_token(
- token_cache_file,
- &access_token,
- &refresh_token,
- )
- .map(move |_| (access_token, refresh_token))
+ cache_refresh_token(token_cache_file, &token)
+ .map(move |_| token.access_token().secret().to_string())
});
Box::new(fut)
}
- fn get_tokens_from_refresh_token(
+ fn get_access_token_from_refresh_token(
&self,
token: &str,
- ) -> Box<dyn futures::Future<Item = (String, String), Error = Error> + Send>
- {
+ ) -> Box<dyn futures::Future<Item = String, Error = Error> + Send> {
let token_cache_file = self.server_token_file(false).unwrap();
let fut = self
.client()
@@ -74,28 +65,12 @@ pub trait Oauth {
Error::ExchangeRefreshToken { msg }
})
.and_then(|token| {
- let access_token = token.access_token().secret().to_string();
- let refresh_token =
- token.refresh_token().unwrap().secret().to_string();
- cache_refresh_token(
- token_cache_file,
- &access_token,
- &refresh_token,
- )
- .map(move |_| (access_token, refresh_token))
+ cache_refresh_token(token_cache_file, &token)
+ .map(move |_| token.access_token().secret().to_string())
});
Box::new(fut)
}
- fn save_tokens(
- &self,
- access_token: &str,
- refresh_token: &str,
- ) -> Box<dyn futures::Future<Item = (), Error = Error> + Send> {
- let token_cache_file = self.server_token_file(false).unwrap();
- cache_refresh_token(token_cache_file, access_token, refresh_token)
- }
-
fn get_username_from_access_token(
self: Box<Self>,
token: &str,
@@ -141,10 +116,13 @@ fn client_id_file(
fn cache_refresh_token(
token_cache_file: std::path::PathBuf,
- access_token: &str,
- refresh_token: &str,
+ token: &oauth2::basic::BasicTokenResponse,
) -> Box<dyn futures::Future<Item = (), Error = Error> + Send> {
- let token_data = format!("{}\n{}\n", refresh_token, access_token);
+ let token_data = format!(
+ "{}\n{}\n",
+ token.refresh_token().unwrap().secret(),
+ token.access_token().secret(),
+ );
let fut = tokio::fs::File::create(token_cache_file.clone())
.with_context(move || crate::error::CreateFile {
filename: token_cache_file.to_string_lossy().to_string(),