这是基于vue-vben-admin 模板适用于abp Vnext的前端管理项目
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

65 lines
2.0 KiB

using LINGYUN.Abp.Identity;
using LY.MicroService.identityServer.Emailing.Templates;
using Microsoft.Extensions.Localization;
using System.Threading;
using System.Threading.Tasks;
using Volo.Abp;
using Volo.Abp.DependencyInjection;
using Volo.Abp.Emailing;
using Volo.Abp.Identity.Localization;
using Volo.Abp.Sms;
using Volo.Abp.TextTemplating;
namespace LY.MicroService.identityServer;
public class UserSecurityCodeSender : IUserSecurityCodeSender, ITransientDependency
{
protected IEmailSender EmailSender { get; }
protected ITemplateRenderer TemplateRenderer { get; }
protected IStringLocalizer<IdentityResource> Localizer { get; }
protected ISmsSender SmsSender { get; }
public UserSecurityCodeSender(
ISmsSender smsSender,
IEmailSender emailSender,
ITemplateRenderer templateRenderer,
IStringLocalizer<IdentityResource> localizer)
{
SmsSender = smsSender;
EmailSender = emailSender;
TemplateRenderer = templateRenderer;
Localizer = localizer;
}
public virtual async Task SendEmailConfirmedCodeAsync(
string userName,
string email,
string token,
CancellationToken cancellation = default)
{
var emailContent = await TemplateRenderer.RenderAsync(
IdentityEmailTemplates.EmailConfirmed,
new { user = userName, code = token });
await EmailSender.SendAsync(
email,
Localizer["EmailConfirmed"],
emailContent);
}
public virtual async Task SendPhoneConfirmedCodeAsync(
string phone,
string token,
string template,
CancellationToken cancellation = default)
{
Check.NotNullOrWhiteSpace(template, nameof(template));
var smsMessage = new SmsMessage(phone, token);
smsMessage.Properties.Add("code", token);
smsMessage.Properties.Add("TemplateCode", template);
await SmsSender.SendAsync(smsMessage);
}
}