Пример #1
0
 public GetAccountTokenOutputQuery(DateTimeOffset issued, DateTimeOffset expires, TokenTypeEnumeration type, string value)
 {
     Issued  = issued;
     Expires = expires;
     Type    = type;
     Value   = value;
 }
Пример #2
0
        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));
        }
Пример #3
0
        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());
        }
Пример #4
0
        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);
        }
Пример #5
0
        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)}.");
            }
        }
Пример #6
0
        private static string GetAccountModifier(Guid accountId, TokenTypeEnumeration tokenType)
        {
            var modifier = Equals(tokenType, TokenTypeEnumeration.AccountConfirmation) ? "Email:" : "Totp:";

            return(modifier + tokenType.DisplayName + ":" + accountId);
        }