一个电话号码,我无法弄清楚如何做一个电话号码,确认在asp.net 1.1核心如何确认在ASP.Net核心1.1MVC
标识服务配置包含明确的选项,要求确认的电子邮件和/或电话号码。
这是可以做到的方式如下:
services
.AddIdentity<User, Role>(options =>
{
options.SignIn.RequireConfirmedEmail = true;
options.SignIn.RequireConfirmedPhoneNumber = true;
});
电子邮件的验证是相当简单的的UserManager包含明确的令牌生成和验证:
var token = await _userManager.GenerateEmailConfirmationTokenAsync(user);
生成的令牌可以通过以下方式验证:
var result = await _userManager.ConfirmEmailAsync(user, code);
上述行wi如果令牌有效,则将user.EmailConfirmed标志切换为true。
现在的问题是,我没有看到类似的方法来生成手机验证令牌及其等效方法来验证它(反过来如果成功,应该将user.PhoneNumberConfirmed标志切换为true)。
用户管理器包含但是一些方法做了用户手机的变化:
_userManager.GenerateChangePhoneNumberTokenAsync();
和
_userManager.VerifyChangePhoneNumberTokenAsync();
但似乎这些方法不切换user.PhoneNumberConfirmed标志。
我错过了什么吗?确认用户电话号码的正确方法是什么(换句话说,将user.PhoneNumberConfirmed设置为true)?
电话确认需要像twilio这样的外部服务才能通过发送短信进行确认。我已经在我的项目中实现了这些东西https://github.com/joeaudette/cloudscribe –
@JoeAudette嗯,我不知道如何提供确认码,但是如何正确验证它。你能指点我吗,你在哪里? –
如果您看到[源代码](https://github.com/aspnet/Identity/blob/rel/1.1.1/src/Microsoft.AspNetCore.Identity/UserManager.cs#L1518),唯一设置PhoneNumberConfirmed的地方为真是在ChangePhoneNumberAsync(TUser用户,字符串phoneNumber,字符串标记)' – tmg