...
1 package client
2
3 import (
4 "context"
5 "encoding/json"
6 "fmt"
7 "io"
8 "net/http"
9
10 "google.golang.org/api/idtoken"
11
12 "edge-infra.dev/pkg/f8n/pgrstoauth"
13 )
14
15 type Client struct {
16 AccessToken string
17 }
18
19 func New() (*Client, error) {
20
21
22 audience := "1037378570607-adh9hflmpotr1kkpdaterc7ac2mffos9.apps.googleusercontent.com"
23 ctx := context.Background()
24
25 client, err := idtoken.NewClient(ctx, audience)
26 if err != nil {
27 return nil, fmt.Errorf("idtoken.NewClient: %w", err)
28 }
29
30 request, err := http.NewRequest("POST", "https://sovereign.edge-infra.dev/oauth/token", nil)
31 if err != nil {
32 return nil, fmt.Errorf("client.Do: %w", err)
33 }
34
35 response, err := client.Do(request)
36 if err != nil {
37 return nil, fmt.Errorf("client.Do: %w", err)
38 }
39 defer response.Body.Close()
40
41 tokenRespRaw, err := io.ReadAll(response.Body)
42 if err != nil {
43 return nil, err
44 }
45
46 fmt.Println(string(tokenRespRaw))
47
48 tokenResp := &pgrstoauth.OAuthTokenResp{}
49
50 err = json.Unmarshal(tokenRespRaw, tokenResp)
51 if err != nil {
52 return nil, err
53 }
54
55 return &Client{}, nil
56 }
57
View as plain text