Mercurial > public > pacobot
comparison auth/auth.go @ 12:aaf85ae1f942
add very simple html template
author | Dennis C. M. <dennis@denniscm.com> |
---|---|
date | Thu, 20 Mar 2025 11:12:21 +0000 |
parents | e9df3bb010f4 |
children |
comparison
equal
deleted
inserted
replaced
11:6d91c612310a | 12:aaf85ae1f942 |
---|---|
4 "encoding/json" | 4 "encoding/json" |
5 "log" | 5 "log" |
6 "net/http" | 6 "net/http" |
7 "net/url" | 7 "net/url" |
8 ) | 8 ) |
9 | |
10 // TODO: Change unmarshall to JSON DECODE | |
11 | 9 |
12 func GetAuthUrl() string { | 10 func GetAuthUrl() string { |
13 config := ReadConfig() | 11 config := ReadConfig() |
14 | 12 |
15 baseUrl := &url.URL{ | 13 baseUrl := &url.URL{ |
19 } | 17 } |
20 | 18 |
21 params := url.Values{} | 19 params := url.Values{} |
22 params.Add("client_id", config.ClientId) | 20 params.Add("client_id", config.ClientId) |
23 params.Add("force_verify", "true") | 21 params.Add("force_verify", "true") |
24 params.Add("redirect_uri", "http://localhost:8080/twitch-auth-code-callback") | 22 params.Add("redirect_uri", "http://localhost:8080/api/auth/twitch") |
25 params.Add("response_type", "code") | 23 params.Add("response_type", "code") |
26 params.Add("scope", "channel:bot user:read:chat") | 24 params.Add("scope", "channel:bot user:read:chat") |
27 params.Add("state", "c3ab8aa609ea11e793ae92361f002671") | 25 params.Add("state", "c3ab8aa609ea11e793ae92361f002671") |
28 | 26 |
29 baseUrl.RawQuery = params.Encode() | 27 baseUrl.RawQuery = params.Encode() |
30 | 28 |
31 return baseUrl.String() | 29 return baseUrl.String() |
32 } | 30 } |
33 | 31 |
34 func GetAuthToken(authCode string) AuthRes { | 32 func GetAuthToken(authCode string) Auth { |
35 config := ReadConfig() | 33 config := ReadConfig() |
36 | 34 |
37 baseUrl := &url.URL{ | 35 baseUrl := &url.URL{ |
38 Scheme: "https", | 36 Scheme: "https", |
39 Host: "id.twitch.tv", | 37 Host: "id.twitch.tv", |
43 formData := url.Values{} | 41 formData := url.Values{} |
44 formData.Add("client_id", config.ClientId) | 42 formData.Add("client_id", config.ClientId) |
45 formData.Add("client_secret", config.ClientSecret) | 43 formData.Add("client_secret", config.ClientSecret) |
46 formData.Add("code", authCode) | 44 formData.Add("code", authCode) |
47 formData.Add("grant_type", "authorization_code") | 45 formData.Add("grant_type", "authorization_code") |
48 formData.Add("redirect_uri", "http://localhost:8080/twitch-auth-code-callback") | 46 formData.Add("redirect_uri", "http://localhost:8080/api/auth/twitch") |
49 | 47 |
50 res, err := http.PostForm(baseUrl.String(), formData) | 48 res, err := http.PostForm(baseUrl.String(), formData) |
51 | 49 |
52 if err != nil { | 50 if err != nil { |
53 log.Fatal(err) | 51 log.Fatal(err) |
57 | 55 |
58 if res.StatusCode != 200 { | 56 if res.StatusCode != 200 { |
59 log.Fatal("GetAuthToken") | 57 log.Fatal("GetAuthToken") |
60 } | 58 } |
61 | 59 |
62 var authRes AuthRes | 60 var authRes Auth |
63 | 61 |
64 err = json.NewDecoder(res.Body).Decode(&authRes) | 62 err = json.NewDecoder(res.Body).Decode(&authRes) |
65 | 63 |
66 if err != nil { | 64 if err != nil { |
67 log.Fatal(err) | 65 log.Fatal(err) |
117 } | 115 } |
118 | 116 |
119 defer res.Body.Close() | 117 defer res.Body.Close() |
120 } | 118 } |
121 | 119 |
122 func RefreshAuthToken(authToken, refreshToken string) AuthRes { | 120 func RefreshAuthToken(authToken, refreshToken string) Auth { |
123 config := ReadConfig() | 121 config := ReadConfig() |
124 | 122 |
125 baseUrl := &url.URL{ | 123 baseUrl := &url.URL{ |
126 Scheme: "https", | 124 Scheme: "https", |
127 Host: "id.twitch.tv", | 125 Host: "id.twitch.tv", |
140 log.Fatal(err) | 138 log.Fatal(err) |
141 } | 139 } |
142 | 140 |
143 defer res.Body.Close() | 141 defer res.Body.Close() |
144 | 142 |
145 var authRes AuthRes | 143 var authRes Auth |
146 | 144 |
147 err = json.NewDecoder(res.Body).Decode(&authRes) | 145 err = json.NewDecoder(res.Body).Decode(&authRes) |
148 | 146 |
149 if err != nil { | 147 if err != nil { |
150 log.Fatal(err) | 148 log.Fatal(err) |
151 } | 149 } |
152 | 150 |
153 return authRes | 151 return authRes |
154 } | 152 } |
155 | 153 |
156 func GetUser(userName, authToken string) UserRes { | 154 func GetUser(userName, authToken string) User { |
157 config := ReadConfig() | 155 config := ReadConfig() |
158 | 156 |
159 baseUrl := &url.URL{ | 157 baseUrl := &url.URL{ |
160 Scheme: "https", | 158 Scheme: "https", |
161 Host: "api.twitch.tv", | 159 Host: "api.twitch.tv", |
181 log.Fatal(err) | 179 log.Fatal(err) |
182 } | 180 } |
183 | 181 |
184 defer res.Body.Close() | 182 defer res.Body.Close() |
185 | 183 |
186 var userRes UserRes | 184 var userRes User |
187 | 185 |
188 err = json.NewDecoder(res.Body).Decode(&userRes) | 186 err = json.NewDecoder(res.Body).Decode(&userRes) |
189 | 187 |
190 if err != nil { | 188 if err != nil { |
191 log.Fatal(err) | 189 log.Fatal(err) |