fix: review comments

This commit is contained in:
Stavros
2025-12-26 18:55:08 +02:00
parent eef674a4e6
commit 80121f2a36
2 changed files with 7 additions and 20 deletions

View File

@@ -9,6 +9,7 @@ import (
"fmt" "fmt"
"io" "io"
"net/http" "net/http"
"strconv"
"time" "time"
"github.com/steveiliop56/tinyauth/internal/config" "github.com/steveiliop56/tinyauth/internal/config"
@@ -27,6 +28,7 @@ type GithubEmailResponse []struct {
type GithubUserInfoResponse struct { type GithubUserInfoResponse struct {
Login string `json:"login"` Login string `json:"login"`
Name string `json:"name"` Name string `json:"name"`
ID int `json:"id"`
} }
type GithubOAuthService struct { type GithubOAuthService struct {
@@ -172,9 +174,7 @@ func (github *GithubOAuthService) Userinfo() (config.Claims, error) {
user.PreferredUsername = userInfo.Login user.PreferredUsername = userInfo.Login
user.Name = userInfo.Name user.Name = userInfo.Name
user.Sub = strconv.Itoa(userInfo.ID)
// Github does not implement OIDC, so no sub is available
user.Sub = "not_available_dont_use_me"
return user, nil return user, nil
} }

View File

@@ -17,13 +17,7 @@ import (
"golang.org/x/oauth2/endpoints" "golang.org/x/oauth2/endpoints"
) )
var GoogleOAuthScopes = []string{"https://www.googleapis.com/auth/userinfo.email", "https://www.googleapis.com/auth/userinfo.profile"} var GoogleOAuthScopes = []string{"openid", "email", "profile"}
type GoogleUserInfoResponse struct {
Email string `json:"email"`
Name string `json:"name"`
Id string `json:"id"`
}
type GoogleOAuthService struct { type GoogleOAuthService struct {
config oauth2.Config config oauth2.Config
@@ -92,7 +86,7 @@ func (google *GoogleOAuthService) Userinfo() (config.Claims, error) {
client := google.config.Client(google.context, google.token) client := google.config.Client(google.context, google.token)
res, err := client.Get("https://www.googleapis.com/userinfo/v2/me") res, err := client.Get("https://openidconnect.googleapis.com/v1/userinfo")
if err != nil { if err != nil {
return config.Claims{}, err return config.Claims{}, err
} }
@@ -107,19 +101,12 @@ func (google *GoogleOAuthService) Userinfo() (config.Claims, error) {
return config.Claims{}, err return config.Claims{}, err
} }
var userInfo GoogleUserInfoResponse err = json.Unmarshal(body, &user)
err = json.Unmarshal(body, &userInfo)
if err != nil { if err != nil {
return config.Claims{}, err return config.Claims{}, err
} }
user.PreferredUsername = strings.Split(userInfo.Email, "@")[0] user.PreferredUsername = strings.SplitN(user.Email, "@", 2)[0]
user.Name = userInfo.Name
user.Email = userInfo.Email
// We can use the id as the sub
user.Sub = userInfo.Id
return user, nil return user, nil
} }