hi
It has no problem on my side. Can you show the problem in the demo project?
Video: https://www.transfernow.net/en/cld?utm_source=20250923ak7xJHn3
Thanks
Thanks. We will fix it asap.
Your ticket has been refunded.
hi
It seems the first login doesn't succeed.
Can you share the test project again?
Thanks.
Thanks, our Angular team will provide a solution soon.
hi
Do you also have this error message in your Chrome console?
Refused to connect to 'http://localhost:4200/.well-known/appspecific/com.chrome.devtools.json'
because it violates the following Content Security Policy directive: "default-src 'none'".
Note that 'connect-src' was not explicitly set, so 'default-src' is used as a fallback.
hi
Can you share the 401 debug logs of the identity service?
401 may indicate a missing token or a failed token validation.
Thanks.
Debug logs:
public async static Task<int> Main(string[] args)
{
IdentityModelEventSource.ShowPII = true;
IdentityModelEventSource.Logger.LogLevel = EventLevel.Verbose;
var wilsonTextLogger = new TextWriterEventListener("Logs/identitymodel.txt");
wilsonTextLogger.EnableEvents(IdentityModelEventSource.Logger, EventLevel.Verbose);
var loggerConfiguration = new LoggerConfiguration()
.MinimumLevel.Debug()
.MinimumLevel.Override("Microsoft.EntityFrameworkCore", LogEventLevel.Warning)
.Enrich.FromLogContext()
.WriteTo.Async(c => c.File("Logs/logs.txt"))
hi
The ShouldForceBankIdLogin method has no problem. You can use that way.
I have to click the login button twice before the user is navigated to the BankID login, even though the prompt is set to 'login'. Bellow is a gif showing the issue
Can you share a GIF and the har file of all requests?
https://abp.io/support/questions/8622/How-to-enable-Debug-logs-for-troubleshoot-problems#answer-3a1a1c4b-691e-3403-98b9-5f23fa024759
Thanks
hi
Can you try setting includeDetails to false during ResetPasswordAsync and then try again?
var user = await IdentityUserRepository.GetAsync(input.UserId, includeDetails: false);
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity;
using Microsoft.Extensions.Options;
using Volo.Abp;
using Volo.Abp.Account;
using Volo.Abp.Account.Emailing;
using Volo.Abp.Account.PhoneNumber;
using Volo.Abp.BlobStoring;
using Volo.Abp.Caching;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Identity;
using Volo.Abp.Imaging;
using Volo.Abp.SettingManagement;
namespace MyCompanyName.MyProjectName;
[Dependency(ReplaceServices = true)]
[ExposeServices(typeof(AccountAppService), typeof(IAccountAppService))]
public class MyAccountAppService : AccountAppService
{
protected IIdentityUserRepository IdentityUserRepository { get; set; }
public MyAccountAppService(
IdentityUserManager userManager,
IAccountEmailer accountEmailer,
IAccountPhoneService phoneService,
IIdentityRoleRepository roleRepository,
IdentitySecurityLogManager identitySecurityLogManager,
IBlobContainer<AccountProfilePictureContainer> accountProfilePictureContainer,
ISettingManager settingManager,
IOptions<IdentityOptions> identityOptions,
IIdentitySecurityLogRepository securityLogRepository,
IImageCompressor imageCompressor,
IOptions<AbpProfilePictureOptions> profilePictureOptions,
IApplicationInfoAccessor applicationInfoAccessor,
IdentityUserTwoFactorChecker identityUserTwoFactorChecker,
IDistributedCache<EmailConfirmationCodeCacheItem> emailConfirmationCodeCache,
IdentityErrorDescriber identityErrorDescriber,
IOptions<AbpRegisterEmailConfirmationCodeOptions> registerEmailConfirmationCodeOptions,
IIdentityUserRepository identityUserRepository)
: base(userManager, accountEmailer, phoneService, roleRepository, identitySecurityLogManager,
accountProfilePictureContainer, settingManager, identityOptions, securityLogRepository, imageCompressor,
profilePictureOptions, applicationInfoAccessor, identityUserTwoFactorChecker, emailConfirmationCodeCache,
identityErrorDescriber, registerEmailConfirmationCodeOptions)
{
IdentityUserRepository = identityUserRepository;
}
public override async Task ResetPasswordAsync(ResetPasswordDto input)
{
await IdentityOptions.SetAsync();
var user = await IdentityUserRepository.GetAsync(input.UserId, includeDetails: false);
(await UserManager.ResetPasswordAsync(user, input.ResetToken, input.Password)).CheckErrors();
await IdentitySecurityLogManager.SaveAsync(new IdentitySecurityLogContext
{
Identity = IdentitySecurityLogIdentityConsts.Identity,
Action = IdentitySecurityLogActionConsts.ChangePassword
});
}
}
Thanks
Thanks. I will check it.
Thanks. I will check it.