use EmailConfirmationToken (which is valid for 10 minutes)
This commit is contained in:
@@ -973,10 +973,6 @@ namespace Oqtane.Managers
|
|||||||
|
|
||||||
var alias = _tenantManager.GetAlias();
|
var alias = _tenantManager.GetAlias();
|
||||||
var user = GetUser(identityuser.UserName, alias.SiteId);
|
var user = GetUser(identityuser.UserName, alias.SiteId);
|
||||||
user.TwoFactorCode = token;
|
|
||||||
user.TwoFactorExpiry = DateTime.UtcNow.AddMinutes(10);
|
|
||||||
_users.UpdateUser(user);
|
|
||||||
|
|
||||||
string url = alias.Protocol + alias.Name + "/pages/loginlink?name=" + user.Username + "&token=" + WebUtility.UrlEncode(token);
|
string url = alias.Protocol + alias.Name + "/pages/loginlink?name=" + user.Username + "&token=" + WebUtility.UrlEncode(token);
|
||||||
string siteName = _sites.GetSite(alias.SiteId).Name;
|
string siteName = _sites.GetSite(alias.SiteId).Name;
|
||||||
string subject = _localizer["LoginLinkEmailSubject"];
|
string subject = _localizer["LoginLinkEmailSubject"];
|
||||||
|
|||||||
@@ -18,14 +18,12 @@ namespace Oqtane.Pages
|
|||||||
{
|
{
|
||||||
private readonly UserManager<IdentityUser> _identityUserManager;
|
private readonly UserManager<IdentityUser> _identityUserManager;
|
||||||
private readonly SignInManager<IdentityUser> _identitySignInManager;
|
private readonly SignInManager<IdentityUser> _identitySignInManager;
|
||||||
private readonly IUserManager _userManager;
|
|
||||||
private readonly ILogManager _logger;
|
private readonly ILogManager _logger;
|
||||||
|
|
||||||
public LoginLinkModel(UserManager<IdentityUser> identityUserManager, SignInManager<IdentityUser> identitySignInManager, IUserManager userManager, ILogManager logger)
|
public LoginLinkModel(UserManager<IdentityUser> identityUserManager, SignInManager<IdentityUser> identitySignInManager, ILogManager logger)
|
||||||
{
|
{
|
||||||
_identityUserManager = identityUserManager;
|
_identityUserManager = identityUserManager;
|
||||||
_identitySignInManager = identitySignInManager;
|
_identitySignInManager = identitySignInManager;
|
||||||
_userManager = userManager;
|
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -41,8 +39,8 @@ namespace Oqtane.Pages
|
|||||||
IdentityUser identityuser = await _identityUserManager.FindByNameAsync(name);
|
IdentityUser identityuser = await _identityUserManager.FindByNameAsync(name);
|
||||||
if (identityuser != null)
|
if (identityuser != null)
|
||||||
{
|
{
|
||||||
var user = _userManager.GetUser(identityuser.UserName, HttpContext.GetAlias().SiteId);
|
var result = await _identityUserManager.ConfirmEmailAsync(identityuser, token);
|
||||||
if (user != null && user.TwoFactorCode == token && DateTime.UtcNow < user.TwoFactorExpiry)
|
if (result.Succeeded)
|
||||||
{
|
{
|
||||||
await _identitySignInManager.SignInAsync(identityuser, false);
|
await _identitySignInManager.SignInAsync(identityuser, false);
|
||||||
_logger.Log(LogLevel.Information, this, LogFunction.Security, "Login Link Successful For User {Username}", name);
|
_logger.Log(LogLevel.Information, this, LogFunction.Security, "Login Link Successful For User {Username}", name);
|
||||||
|
|||||||
Reference in New Issue
Block a user