From 70cbe5bcf54c991c5a93c24fdbabed5a976a05a0 Mon Sep 17 00:00:00 2001 From: ysmoradi Date: Fri, 14 Mar 2025 08:10:57 +0100 Subject: [PATCH] social signed-in user assumed as confirmed user (#10239) --- .../Identity/IdentityController.SocialSignIn.cs | 7 ++++++- .../Services/Identity/AppUserConfirmation.cs | 4 +++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Controllers/Identity/IdentityController.SocialSignIn.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Controllers/Identity/IdentityController.SocialSignIn.cs index acf1bca4a2..9371a924eb 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Controllers/Identity/IdentityController.SocialSignIn.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Controllers/Identity/IdentityController.SocialSignIn.cs @@ -50,9 +50,14 @@ public async Task SocialSignInCallback(string? returnUrl = null, i if (user is null) { + var name = info.Principal.FindFirstValue(ClaimTypes.Name) ?? info.Principal.FindFirstValue(ClaimTypes.NameIdentifier); // Instead of automatically creating a user here, you can navigate to the sign-up page and pass the email and phone number in the query string. - user = new() { LockoutEnabled = true }; + user = new() + { + FullName = name, + LockoutEnabled = true + }; await userStore.SetUserNameAsync(user, Guid.NewGuid().ToString(), cancellationToken); diff --git a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Services/Identity/AppUserConfirmation.cs b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Services/Identity/AppUserConfirmation.cs index 7113b30613..b8289d941b 100644 --- a/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Services/Identity/AppUserConfirmation.cs +++ b/src/Templates/Boilerplate/Bit.Boilerplate/src/Server/Boilerplate.Server.Api/Services/Identity/AppUserConfirmation.cs @@ -6,6 +6,8 @@ public partial class AppUserConfirmation : IUserConfirmation { public async Task IsConfirmedAsync(UserManager manager, User user) { - return user.EmailConfirmed || user.PhoneNumberConfirmed; + return user.EmailConfirmed || + user.PhoneNumberConfirmed || + (await manager.GetLoginsAsync(user)).Any(); } }