Enhance user registration status handling during third-party login

- Updated the LoginThirdParty function to determine user status based on invitation requirements, setting it to "pending_invite" if an invite is required.
- Improved user data mapping to reflect the new status logic, enhancing the user experience during the registration process.
This commit is contained in:
Max 2025-10-17 09:41:41 +08:00
parent 5d1b665457
commit 5437ceec7d

View file

@ -79,6 +79,12 @@ func LoginThirdParty(providerID string, userinfo *oauthtypes.OIDCUserInfo, login
userID, err = userProvider.GetOAuthUserID(ctx, providerID, userinfo.Sub)
if err != nil && err.Error() == user.ErrOAuthAccountNotFound {
// Determine initial status based on invite requirement
status := "active"
if entryConfig.InviteRequired {
status = "pending_invite" // Waiting for invite code verification
}
userData := map[string]interface{}{
"name": userinfo.Name,
"given_name": userinfo.GivenName,
@ -86,7 +92,7 @@ func LoginThirdParty(providerID string, userinfo *oauthtypes.OIDCUserInfo, login
"picture": userinfo.Picture,
"role_id": entryConfig.Role,
"type_id": entryConfig.Type,
"status": "active",
"status": status,
}
// Auto register user