use std::{
env,
io::{BufReader, Read},
net::TcpStream,
sync::{Arc, Mutex},
};
use dotenv::dotenv;
use http_scrap::Response;
use rusty_oauth::{
scope::scope::{handle_scope, Scope},
Client, ClientId, ClientProviderUrl, ClientSecret,
};
pub fn google_outh(stream: &Arc<Mutex<TcpStream>>, login: &str) {
dotenv().ok();
let mut stream = stream.lock().unwrap();
let mut buffer = [0; 1024];
stream.read(&mut buffer);
let respone = String::from_utf8_lossy(&buffer);
let client_id =
ClientId::new("920623140590-gn10hikrt3e6b3pagil2pp1rs7tm8fub.apps.googleusercontent.com")
.unwrap();
let client_secret = ClientSecret::new("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").unwrap();
let client_url = ClientProviderUrl::new(rusty_oauth::Providers::GOOGLE);
let profile = Scope::Google(rusty_oauth::scope::google::GoogleScope::UserScope(
rusty_oauth::scope::google::UserScope::Profile,
));
let email = Scope::Google(rusty_oauth::scope::google::GoogleScope::UserScope(
rusty_oauth::scope::google::UserScope::Email,
));
let scope = handle_scope(&[profile, email]);
let mut client = Client::new(
&client_id,
&client_secret,
&client_url,
scope,
None,
None,
rusty_oauth::client::redirect_url::RedirectUrl::Google,
);
let response = Response::new(&respone);
let path = response.path();
println!("eertyui {}", path);
if path.starts_with(login) {
println!("{}", login);
client.build(&stream);
}
if path.starts_with("/api/auth") {
let token = client.client_token(path, &stream, "/").unwrap();
match token {
rusty_oauth::client::decode::decode::Token::Google(token) => {
println!("{:?}", token.email)
}
rusty_oauth::client::decode::decode::Token::Github(_) => {}
}
}
}