rusty_render/
google.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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 id = env::var("920623140590-gn10hikrt3e6b3pagil2pp1rs7tm8fub.apps.googleusercontent.com")
    //     .unwrap();
    // let secret = env::var("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").unwrap();

    let mut stream = stream.lock().unwrap();
    // println!("{:?}", stream);

    // let mut buffer = BufReader::new(*stream);
    // let mut respone = String::new();
    // buffer.read_to_string(&mut respone);

    // println!("{}", respone);

    let mut buffer = [0; 1024];
    stream.read(&mut buffer);

    let respone = String::from_utf8_lossy(&buffer);

    // stream.read(&mut buffer);
    // println!("{:?}", buffer);
    // let respone = String::from_utf8_lossy(&buffer);
    // println!("{}", respone);

    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(_) => {}
        }
    }
}