mirror of
https://github.com/adriankumpf/tesla_auth.git
synced 2026-02-27 09:54:03 +08:00
Upgrade dependencies
This commit is contained in:
Generated
+568
-815
File diff suppressed because it is too large
Load Diff
+9
-9
@@ -13,22 +13,22 @@ license = "MIT OR Apache-2.0"
|
||||
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||
|
||||
[dependencies]
|
||||
anyhow = "1.0.95"
|
||||
anyhow = "1.0.97"
|
||||
argh = "0.1.13"
|
||||
log = "0.4.22"
|
||||
muda = "0.15.3"
|
||||
oauth2 = "4.4.2"
|
||||
reqwest = { version = "0.12.11", default-features = false, features = [
|
||||
log = "0.4.27"
|
||||
muda = "0.16.1"
|
||||
oauth2 = { version = "5.0.0", features = ["reqwest-blocking" ] }
|
||||
reqwest = { version = "0.12.15", default-features = false, features = [
|
||||
"json",
|
||||
"rustls-tls",
|
||||
] }
|
||||
serde = { version = "1.0.217", default-features = false, features = ["derive"] }
|
||||
serde_json = "1.0.134"
|
||||
serde = { version = "1.0.219", default-features = false, features = ["derive"] }
|
||||
serde_json = "1.0.140"
|
||||
simple_logger = { version = "5.0.0", default-features = false, features = [
|
||||
"stderr",
|
||||
] }
|
||||
tao = { version = "0.31", default-features = false, features = ["rwh_06"] }
|
||||
wry = { version = "0.47.2", features = ["devtools"] }
|
||||
tao = { version = "0.33", default-features = false, features = ["rwh_06"] }
|
||||
wry = { version = "0.51.0", features = ["devtools"] }
|
||||
|
||||
[build-dependencies]
|
||||
static_vcruntime = "2.0.0"
|
||||
|
||||
+32
-20
@@ -5,13 +5,14 @@ use std::time::Duration;
|
||||
use anyhow::anyhow;
|
||||
|
||||
use oauth2::basic::BasicClient;
|
||||
use oauth2::reqwest::http_client;
|
||||
use oauth2::reqwest;
|
||||
use oauth2::url::{Host, Url};
|
||||
use oauth2::{
|
||||
AccessToken, AuthType, AuthUrl, AuthorizationCode, ClientId, CsrfToken, ExtraTokenFields,
|
||||
PkceCodeChallenge, PkceCodeVerifier, RedirectUrl, RefreshToken, Scope, StandardTokenResponse,
|
||||
TokenResponse, TokenType, TokenUrl,
|
||||
};
|
||||
use oauth2::{EndpointNotSet, EndpointSet};
|
||||
|
||||
use crate::htime;
|
||||
|
||||
@@ -58,31 +59,37 @@ impl fmt::Display for Tokens {
|
||||
|
||||
pub struct Client {
|
||||
auth_url: Url,
|
||||
oauth_client: BasicClient,
|
||||
oauth_client_cn: BasicClient,
|
||||
oauth_client:
|
||||
BasicClient<EndpointSet, EndpointNotSet, EndpointNotSet, EndpointNotSet, EndpointSet>,
|
||||
oauth_client_cn:
|
||||
BasicClient<EndpointSet, EndpointNotSet, EndpointNotSet, EndpointNotSet, EndpointSet>,
|
||||
pkce_verifier: PkceCodeVerifier,
|
||||
csrf_token: CsrfToken,
|
||||
}
|
||||
|
||||
impl Client {
|
||||
pub fn new() -> Client {
|
||||
let oauth_client = BasicClient::new(
|
||||
ClientId::new(CLIENT_ID.to_string()),
|
||||
None,
|
||||
AuthUrl::new(AUTH_URL.to_string()).unwrap(),
|
||||
Some(TokenUrl::new(TOKEN_URL.to_string()).unwrap()),
|
||||
)
|
||||
.set_auth_type(AuthType::RequestBody)
|
||||
.set_redirect_uri(RedirectUrl::new(REDIRECT_URL.to_string()).unwrap());
|
||||
let auth_url =
|
||||
AuthUrl::new(AUTH_URL.to_string()).expect("Invalid authorization endpoint URL");
|
||||
let redirect_url =
|
||||
RedirectUrl::new(REDIRECT_URL.to_string()).expect("Invalid redirect URL");
|
||||
|
||||
let oauth_client_cn = BasicClient::new(
|
||||
ClientId::new(CLIENT_ID.to_string()),
|
||||
None,
|
||||
AuthUrl::new(AUTH_URL.to_string()).unwrap(),
|
||||
Some(TokenUrl::new(TOKEN_URL_CN.to_string()).unwrap()),
|
||||
)
|
||||
.set_auth_type(AuthType::RequestBody)
|
||||
.set_redirect_uri(RedirectUrl::new(REDIRECT_URL.to_string()).unwrap());
|
||||
let token_url = TokenUrl::new(TOKEN_URL.to_string()).expect("Invalid token endpoint URL");
|
||||
|
||||
let token_url_cn =
|
||||
TokenUrl::new(TOKEN_URL_CN.to_string()).expect("Invalid token endpoint URL");
|
||||
|
||||
let oauth_client = BasicClient::new(ClientId::new(CLIENT_ID.to_string()))
|
||||
.set_auth_type(AuthType::RequestBody)
|
||||
.set_redirect_uri(redirect_url.clone())
|
||||
.set_auth_uri(auth_url.clone())
|
||||
.set_token_uri(token_url.clone());
|
||||
|
||||
let oauth_client_cn = BasicClient::new(ClientId::new(CLIENT_ID.to_string()))
|
||||
.set_auth_type(AuthType::RequestBody)
|
||||
.set_redirect_uri(redirect_url)
|
||||
.set_auth_uri(auth_url)
|
||||
.set_token_uri(token_url_cn);
|
||||
|
||||
let (pkce_challenge, pkce_verifier) = PkceCodeChallenge::new_random_sha256();
|
||||
|
||||
@@ -117,10 +124,15 @@ impl Client {
|
||||
_global => self.oauth_client,
|
||||
};
|
||||
|
||||
let http_client = reqwest::blocking::ClientBuilder::new()
|
||||
.redirect(reqwest::redirect::Policy::none())
|
||||
.build()
|
||||
.expect("Client should build");
|
||||
|
||||
let sso_token: SsoToken = client
|
||||
.exchange_code(AuthorizationCode::new(code.to_string()))
|
||||
.set_pkce_verifier(self.pkce_verifier)
|
||||
.request(http_client)?
|
||||
.request(&http_client)?
|
||||
.try_into()?;
|
||||
|
||||
let tokens = Tokens {
|
||||
|
||||
Reference in New Issue
Block a user