feat: add email scope to OAuth configuration and update documentation

This commit is contained in:
Miroslav Šedivý
2026-09-24 00:13:28 +02:00
parent 3f3ae10fb9
commit 6bc8350213
3 changed files with 12 additions and 2 deletions
+1 -1
View File
@@ -152,7 +152,7 @@ func (Member) Init(cmd *cobra.Command) error {
return err
}
cmd.PersistentFlags().StringSlice("member.oauth.scopes", []string{"openid", "profile"}, "OAuth 2.0 scopes")
cmd.PersistentFlags().StringSlice("member.oauth.scopes", []string{"openid", "profile", "email"}, "OAuth 2.0 scopes")
if err := viper.BindPFlag("member.oauth.scopes", cmd.PersistentFlags().Lookup("member.oauth.scopes")); err != nil {
return err
}
+6
View File
@@ -13,6 +13,8 @@ import (
"sync"
"time"
"github.com/rs/zerolog/log"
"github.com/m1k1o/neko/server/pkg/types"
)
@@ -166,6 +168,10 @@ func (service *Service) Complete(ctx context.Context, stateToken, code string) (
email = claim(idClaims, "email")
}
if email == "" && (len(config.AdminEmails) > 0 || len(config.UserEmails) > 0) {
log.Warn().Msg("OAuth admin_emails/user_emails are configured but the provider did not return an 'email' claim; request the 'email' scope")
}
isAdmin := boolClaim(claims, "isAdmin") || boolClaim(idClaims, "isAdmin")
admin := administrator(email, isAdmin, config.AdminEmails)