(client tls_client.HttpClient, api_key string, proxy string)
| 55 | } |
| 56 | |
| 57 | func GetSessionToken(client tls_client.HttpClient, api_key string, proxy string) (groq.AuthenticateResponse, error) { |
| 58 | if proxy != "" { |
| 59 | client.SetProxy(proxy) |
| 60 | } |
| 61 | if api_key == "" { |
| 62 | return groq.AuthenticateResponse{}, errors.New("session token is empty") |
| 63 | } |
| 64 | authorization := generateRefreshToken(api_key) |
| 65 | header := baseHeader() |
| 66 | header.Set("authorization", "Basic "+authorization) |
| 67 | header.Set("x-sdk-client", "eyJldmVudF9pZCI6ImV2ZW50LWlkLWQ4M2IwNTI4LTllNjMtNDkxYi05OGM5LWUyZmJmODY4MWRlZiIsImFwcF9zZXNzaW9uX2lkIjoiYXBwLXNlc3Npb24taWQtNjRlNGI4ZTItOWM2NS00MDFlLWIyMjUtYjk4MWYxNGRjMTRjIiwicGVyc2lzdGVudF9pZCI6InBlcnNpc3RlbnQtaWQtOTNlZWYwNWUtYWE0OS00OWJhLThhNjktYWVjZTA3ZTZiM2NmIiwiY2xpZW50X3NlbnRfYXQiOiIyMDI0LTA0LTI2VDExOjM4OjU1Ljk0NVoiLCJ0aW1lem9uZSI6IkFzaWEvU2hhbmdoYWkiLCJzdHl0Y2hfdXNlcl9pZCI6InVzZXItbGl2ZS1kZDM4ODRiYS01M2YyLTRjNjEtYTI5Yi02NzEwNmExMDMxNTciLCJzdHl0Y2hfc2Vzc2lvbl9pZCI6InNlc3Npb24tbGl2ZS01ZjQ5NDViZS1kNTIyLTQyZWEtYTEzNC01MWE4YzM2OTBkN2UiLCJhcHAiOnsiaWRlbnRpZmllciI6ImNvbnNvbGUuZ3JvcS5jb20ifSwic2RrIjp7ImlkZW50aWZpZXIiOiJTdHl0Y2guanMgSmF2YXNjcmlwdCBTREsiLCJ2ZXJzaW9uIjoiNC42LjAifX0=") |
| 68 | header.Set("x-sdk-parent-host", "https://groq.com") |
| 69 | |
| 70 | rawUrl := "https://web.stytch.com/sdk/v1/sessions/authenticate" |
| 71 | req, err := http.NewRequest(http.MethodPost, rawUrl, strings.NewReader(`{}`)) |
| 72 | req.Header = header |
| 73 | if err != nil { |
| 74 | return groq.AuthenticateResponse{}, err |
| 75 | } |
| 76 | response, err := client.Do(req) |
| 77 | if err != nil { |
| 78 | return groq.AuthenticateResponse{}, err |
| 79 | } |
| 80 | if response.StatusCode != 200 { |
| 81 | return groq.AuthenticateResponse{}, errors.New("authenticate failed") |
| 82 | } |
| 83 | var result groq.AuthenticateResponse |
| 84 | err = json.NewDecoder(response.Body).Decode(&result) |
| 85 | if err != nil { |
| 86 | return groq.AuthenticateResponse{}, err |
| 87 | } |
| 88 | return result, nil |
| 89 | } |
| 90 | |
| 91 | func generateRefreshToken(api_key string) string { |
| 92 | prefix := "public-token-live-26a89f59-09f8-48be-91ff-ce70e6000cb5:" + api_key |
nothing calls this directly
no test coverage detected