1
0
mirror of https://github.com/bitwarden/server.git synced 2025-07-04 09:32:48 -05:00

passwordless signin email

This commit is contained in:
Kyle Spearrin
2018-03-21 21:19:03 -04:00
parent 7475ed7318
commit 6e16581fe8
14 changed files with 103 additions and 12 deletions

View File

@ -153,6 +153,19 @@ namespace Bit.Core.Services
}
}
public async Task SendPasswordlessSignInAsync(string baseUrl, string token, string email)
{
try
{
await _primaryMailService.SendPasswordlessSignInAsync(baseUrl, token, email);
}
catch(Exception e)
{
LogError(e);
await _backupMailService.SendPasswordlessSignInAsync(baseUrl, token, email);
}
}
public async Task SendWelcomeEmailAsync(User user)
{
try

View File

@ -170,6 +170,19 @@ namespace Bit.Core.Services
await _mailDeliveryService.SendEmailAsync(message);
}
public async Task SendPasswordlessSignInAsync(string baseUrl, string token, string email)
{
var model = new Dictionary<string, string>
{
["url"] = string.Format("{0}?email={1}&token={2}", baseUrl, WebUtility.UrlEncode(email),
WebUtility.UrlEncode(token))
};
var message = await CreateMessageAsync("Continue Logging In", email, "PasswordlessSignIn", model);
message.MetaData.Add("SendGridBypassListManagement", true);
await _mailDeliveryService.SendEmailAsync(message);
}
private async Task<MailMessage> CreateMessageAsync(string subject, string toEmail, string fileName,
Dictionary<string, string> model)
{

View File

@ -203,6 +203,19 @@ namespace Bit.Core.Services
await _mailDeliveryService.SendEmailAsync(message);
}
public async Task SendPasswordlessSignInAsync(string baseUrl, string token, string email)
{
var message = CreateDefaultMessage("Continue Logging In", email);
var model = new PasswordlessSignInModel
{
Url = string.Format("{0}?email={1}&token={2}", baseUrl, WebUtility.UrlEncode(email),
WebUtility.UrlEncode(token))
};
message.HtmlContent = await _engine.CompileRenderAsync("PasswordlessSignIn", model);
message.TextContent = await _engine.CompileRenderAsync("PasswordlessSignIn.text", model);
await _mailDeliveryService.SendEmailAsync(message);
}
private MailMessage CreateDefaultMessage(string subject, string toEmail)
{
return CreateDefaultMessage(subject, new List<string> { toEmail });