diff --git a/src/Infrastructure/BotSharp.Core/Users/Services/UserService.cs b/src/Infrastructure/BotSharp.Core/Users/Services/UserService.cs index f8df34dc..a46e16cf 100644 --- a/src/Infrastructure/BotSharp.Core/Users/Services/UserService.cs +++ b/src/Infrastructure/BotSharp.Core/Users/Services/UserService.cs @@ -112,7 +112,11 @@ public class UserService : IUserService var base64 = Encoding.UTF8.GetString(Convert.FromBase64String(authorization)); var (id, password) = base64.SplitAsTuple(":"); var db = _services.GetRequiredService(); - var record = db.GetUserByPhone(id); + var record = db.GetAffiliateUserByPhone(id); + if (record == null) + { + record = db.GetUserByPhone(id); + } var isCanLoginAffiliateRoleType = record != null && !record.IsDisabled && record.Type != UserType.Client; if (!isCanLoginAffiliateRoleType) diff --git a/src/Infrastructure/BotSharp.OpenAPI/Filters/UserSingleLoginFilter.cs b/src/Infrastructure/BotSharp.OpenAPI/Filters/UserSingleLoginFilter.cs index 824c9571..e8db0801 100644 --- a/src/Infrastructure/BotSharp.OpenAPI/Filters/UserSingleLoginFilter.cs +++ b/src/Infrastructure/BotSharp.OpenAPI/Filters/UserSingleLoginFilter.cs @@ -20,6 +20,14 @@ namespace BotSharp.OpenAPI.Filters public void OnAuthorization(AuthorizationFilterContext context) { + var isAllowAnonymous = context.ActionDescriptor.EndpointMetadata + .Any(em => em.GetType() == typeof(AllowAnonymousAttribute)); + + if (isAllowAnonymous) + { + return; + } + var bearerToken = GetBearerToken(context); if (!string.IsNullOrWhiteSpace(bearerToken)) {