Can you share the complete stack information?
You can try to modify the database name of the database connection string, re-migrate and start the application to see if it is still wrong.
Is the primary key id of the data in the Abp Tenants table a number 1?
If you are just starting the project, you can delete the database and re-migrate.
You can allow the user to bind the phone number when logging into the application after the user has successfully registered.
:D
For security and privacy reasons, I believe that applications cannot get sensitive information unless they are actively provided by the user.
As it turns out, [Delete BIN OBJ Folders] needs to exclude the node_modules directory. :D
hi geek1913
What is the output of npm run create-bundles?
You can open the browser's development tool to see if there is javascript file not loaded successfully, or javascript script to perform wrong output.
hi rvanwoezik I saw that you are using OwnsOne why you don’t use a one-to-many relationship. Because you have split the table [Table("PhysicalAddresses")]
Can you create a simple demo that reproduces the problem.
hi joe704la
If you want to implement this feature as soon as possible, You can override Abp.SetNewEmailConfirmationCode by yourself. Customize EmailConfirmationCode and add a timestamp (note that the length should not exceed 328)
Then perform custom validation in AccountAppService.ActivateEmail.
I provide an implementation, but you can customize the way you like.
The DataProtectorTokenProvider uses the TokenLifespan property of the DataProtectionTokenProviderOptions by default to validate the validity period. The default is 1 day.
Of course, DataProtectionTokenProviderOptions can be customized, please refer to:[https://github.com/aspnet/Docs/issues/5436])
//Generate email code
var user = await _userManager.FindByIdAsync("3");
var emailCode = await _dataProtectorTokenProvider.GenerateAsync("ActivateEmail", _userManager, user);
//emailCode like CfDJ8BgfrGEzWk9Chdg/C6u19QLFGUhjSSZs12yz/guCxJDzbNUe2vBxSK8OK9gyS+7wDHAt3MYV1tMKEWA0ysONLPBJfyC9qLFbNGxi3S32c6I3vsmCRMOFmTSPoISBIPAHaNgt3lLd76mxxw9Gu4dWraNdhZgOF3GcbdH5namG2ld4YBULmFjwB9WkHMqVXS/V9A==
// send email
//Validate
if (await _dataProtectorTokenProvider.ValidateAsync("ActivateEmail", emailCode, _userManager, user))
{
//Activate success!
}
else
{
//Activate fail.
}