Merge pull request #36 from zzzz0317/main

fix: oidc token endpoint request body #2106
This commit is contained in:
Laisky.Cai 2025-03-09 20:57:40 +08:00 committed by GitHub
commit 4076e637fd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,11 +1,12 @@
package auth package auth
import ( import (
"bytes" "strings"
"encoding/json" "encoding/json"
"errors" "errors"
"fmt" "fmt"
"net/http" "net/http"
"net/url"
"strconv" "strconv"
"time" "time"
@ -39,22 +40,18 @@ func getOidcUserInfoByCode(code string) (*OidcUser, error) {
if code == "" { if code == "" {
return nil, errors.New("Invalid parameter") return nil, errors.New("Invalid parameter")
} }
values := map[string]string{ values := url.Values{}
"client_id": config.OidcClientId, values.Set("client_id", config.OidcClientId)
"client_secret": config.OidcClientSecret, values.Set("client_secret", config.OidcClientSecret)
"code": code, values.Set("code", code)
"grant_type": "authorization_code", values.Set("grant_type", "authorization_code")
"redirect_uri": fmt.Sprintf("%s/oauth/oidc", config.ServerAddress), values.Set("redirect_uri", fmt.Sprintf("%s/oauth/oidc", config.ServerAddress))
} formData := values.Encode()
jsonData, err := json.Marshal(values) req, err := http.NewRequest("POST", config.OidcTokenEndpoint, strings.NewReader(formData))
if err != nil { if err != nil {
return nil, err return nil, err
} }
req, err := http.NewRequest("POST", config.OidcTokenEndpoint, bytes.NewBuffer(jsonData)) req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
if err != nil {
return nil, err
}
req.Header.Set("Content-Type", "application/json")
req.Header.Set("Accept", "application/json") req.Header.Set("Accept", "application/json")
client := http.Client{ client := http.Client{
Timeout: 5 * time.Second, Timeout: 5 * time.Second,