public GetAccountTokenOutputQuery(DateTimeOffset issued, DateTimeOffset expires, TokenTypeEnumeration type, string value) { Issued = issued; Expires = expires; Type = type; Value = value; }
private static string GenerateTokenValue(Guid accountId, Guid securityStamp, TokenTypeEnumeration tokenType) { var securityToken = Encoding.Unicode.GetBytes(securityStamp.ToString()); var modifier = GetAccountModifier(accountId, tokenType); return(GenerateCode(securityToken, modifier).ToString("D6", CultureInfo.InvariantCulture)); }
public Token Generate(Guid accountId, Guid securityStamp, TokenTypeEnumeration tokenType) { var issued = DateTimeOffset.UtcNow; var expires = issued.AddDays(1); var value = GenerateTokenValue(accountId, securityStamp, tokenType); return(Token.Builder() .SetIssued(issued) .SetExpires(expires) .SetType(tokenType) .SetValue(value) .Build()); }
public Token GenerateToken(TokenTypeEnumeration tokenType, Guid correlationId) { tokenType = new TokenType(tokenType); correlationId = new AccountCorrelationId(correlationId); var token = _tokens.SingleOrDefault(x => x.Type.Equals(tokenType)); _tokens.Remove(token); ChangeSecurityStamp(correlationId); token = _tokenGeneratorService.Generate(Id, SecurityStamp, tokenType); _tokens.Add(token); AddEvent(new AccountTokenGeneratedDomainEvent(Id, correlationId, token)); return(token); }
public static TokenType ConvertToEnum(this TokenTypeEnumeration tokenType) { switch (tokenType) { case { } tokenTypeEnumeration when Equals(tokenTypeEnumeration, TokenTypeEnumeration.PasswordReset): return(TokenType.PasswordReset); case { } tokenTypeEnumeration when Equals(tokenTypeEnumeration, TokenTypeEnumeration.AccountConfirmation): return(TokenType.AccountConfirmation); default: throw new ArgumentException($"{nameof(tokenType.DisplayName)} is not supported by {nameof(TokenType)}."); } }
private static string GetAccountModifier(Guid accountId, TokenTypeEnumeration tokenType) { var modifier = Equals(tokenType, TokenTypeEnumeration.AccountConfirmation) ? "Email:" : "Totp:"; return(modifier + tokenType.DisplayName + ":" + accountId); }