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)