【发布时间】:2022-01-02 08:20:32
【问题描述】:
我正在 Xamarin 中构建一个 API 和一个移动应用程序。我不想确认电话号码,因为我必须使用 Twilio 或其他 SMS 提供商,相反,我想确认电子邮件。同时,我不想创建一个电子邮件令牌发送给用户点击链接,因为 API 不是 MVC,不会有任何视图。
相反,我希望将 6 位代码通过电子邮件发送给用户,然后我将在 API 中创建一个端点,用户将通过移动 APP 提交该代码以确认电子邮件。例如:
var code = await _userManager.GenerateChangePhoneNumberTokenAsync(newUser, newUser.Email);
这将创建代码,请注意我传递的是用户电子邮件而不是电话号码。此代码现在通过电子邮件发送给用户,用户在移动应用程序中输入此代码。那么:
var confirmed = await _userManager.VerifyChangePhoneNumberTokenAsync(newUser, code, newUser.Email);
这确认代码是正确的。然后我将使用由此产生的布尔值手动将数据库中的EmailConfirmed 设置为true
它有效。还是可以接受吗?我有什么理由不应该这样做吗?
【问题讨论】:
-
也许也值得在security.stackexchange.com 上提问
标签: asp.net-core xamarin .net-core asp.net-identity