@@ -5,24 +5,31 @@ use twitch_oauth2::tokens::UserTokenBuilder;
5
5
async fn main ( ) -> anyhow:: Result < ( ) > {
6
6
let _ = dotenv:: dotenv ( ) ; // Eat error
7
7
let mut args = std:: env:: args ( ) . skip ( 1 ) ;
8
- let mut builder = UserTokenBuilder :: new (
9
- std:: env:: var ( "TWITCH_CLIENT_ID" )
10
- . ok ( )
11
- . or_else ( || args. next ( ) )
12
- . map ( twitch_oauth2:: ClientId :: new)
13
- . context ( "Please set env: TWITCH_CLIENT_ID or pass as first argument" ) ?,
14
- std:: env:: var ( "TWITCH_CLIENT_SECRET" )
15
- . ok ( )
16
- . or_else ( || args. next ( ) )
17
- . map ( twitch_oauth2:: ClientSecret :: new)
18
- . context ( "Please set env: TWITCH_CLIENT_SECRET or pass as second argument" ) ?,
19
- std:: env:: var ( "TWITCH_REDIRECT_URL" )
20
- . ok ( )
21
- . or_else ( || args. next ( ) )
22
- . map ( |r| twitch_oauth2:: url:: Url :: parse ( & r) )
23
- . context ( "Please set env: TWITCH_REDIRECT_URL or pass as third argument" ) ??,
24
- )
25
- . force_verify ( true ) ;
8
+
9
+ let reqwest = reqwest:: Client :: builder ( )
10
+ . redirect ( reqwest:: redirect:: Policy :: none ( ) )
11
+ . build ( ) ?;
12
+
13
+ let client_id = std:: env:: var ( "TWITCH_CLIENT_ID" )
14
+ . ok ( )
15
+ . or_else ( || args. next ( ) )
16
+ . map ( twitch_oauth2:: ClientId :: new)
17
+ . context ( "Please set env: TWITCH_CLIENT_ID or pass as first argument" ) ?;
18
+
19
+ let client_secret = std:: env:: var ( "TWITCH_CLIENT_SECRET" )
20
+ . ok ( )
21
+ . or_else ( || args. next ( ) )
22
+ . map ( twitch_oauth2:: ClientSecret :: new)
23
+ . context ( "Please set env: TWITCH_CLIENT_SECRET or pass as second argument" ) ?;
24
+
25
+ let redirect_url = std:: env:: var ( "TWITCH_REDIRECT_URL" )
26
+ . ok ( )
27
+ . or_else ( || args. next ( ) )
28
+ . map ( |r| twitch_oauth2:: url:: Url :: parse ( & r) )
29
+ . context ( "Please set env: TWITCH_REDIRECT_URL or pass as third argument" ) ??;
30
+
31
+ let mut builder =
32
+ UserTokenBuilder :: new ( client_id, client_secret, redirect_url) . force_verify ( true ) ;
26
33
27
34
let ( url, _) = builder. generate_url ( ) ;
28
35
@@ -38,15 +45,7 @@ async fn main() -> anyhow::Result<()> {
38
45
39
46
match ( map. get ( "state" ) , map. get ( "code" ) ) {
40
47
( Some ( state) , Some ( code) ) => {
41
- let token = builder
42
- . get_user_token (
43
- & reqwest:: Client :: builder ( )
44
- . redirect ( reqwest:: redirect:: Policy :: none ( ) )
45
- . build ( ) ?,
46
- state,
47
- code,
48
- )
49
- . await ?;
48
+ let token = builder. get_user_token ( & reqwest, state, code) . await ?;
50
49
println ! ( "Got token: {:?}" , token) ;
51
50
}
52
51
_ => match ( map. get ( "error" ) , map. get ( "error_description" ) ) {
0 commit comments