【发布时间】:2017-11-04 21:48:37
【问题描述】:
我在 ApiController 中生成自定义用户令牌,并使用回调链接将其通过电子邮件发送给用户
var token = userManager.GenerateUserToken(user.Id, "ConfirmAction");
var callbackUrl = this.Url.Link("Default", new { controller = "AccountController", action = "ActionXYZ", new { userId = user.Id, token = token} });
当用户点击链接时,我在 MVC 控制器中处理它
var validToken = await userManager.VerifyUserTokenAsync(user.Id, "ConfirmAction", token);
if(validToken)
{
// Can token be cancelled to disallow re-use?
}
有没有办法防止令牌被多次使用而不将令牌保存在数据库中?例如,特定令牌的某种提前到期?
【问题讨论】:
-
您是否再次尝试重用相同的令牌?成功了吗?
-
是的,该链接可以多次使用,最长可达 24 小时。然后它会在 24 小时后过期。但是,我只希望链接只工作一次。
标签: c# asp.net-mvc token