Exemplo n.º 1
0
        public async Task <bool> Verify(string series, string token, string identity, string verifyCode, int expiryLeewayMs)
        {
            Initialize();

            var verification = await DoGetVerification(series);

            if (verification == null)
            {
                return(false);
            }
            identity = identity.ToLower(CultureUtils.CultureEnglish);

            if (!IdentityDigester.Verify(identity, verification.HashIdentity))
            {
                return(false);
            }
            if (!TokenDigester.Verify(GetTokenData(token, identity, verifyCode, verification.ExpiresAtUtc.Value), verification.Token))
            {
                return(false);
            }
            if (!DateUtils.IsFutureTime(verification.ExpiresAtUtc.Value, expiryLeewayMs))
            {
                return(false);
            }
            return(true);
        }
Exemplo n.º 2
0
        public async Task <string> SaveVerification(string token, string identity, string verifyCode, int expiresInSec)
        {
            Initialize();

            long curTimeMs    = DateUtils.CurrentTimeMillis;
            long expiresAtUtc = curTimeMs + expiresInSec * 1000L;

            identity = identity.ToLower(CultureUtils.CultureEnglish);

            var verification = NewVerification();

            verification.Series       = NextSeries();
            verification.Token        = TokenDigester.Digest(GetTokenData(token, identity, verifyCode, expiresAtUtc));
            verification.HashIdentity = IdentityDigester.Digest(identity);

            verification.ExpiresAtUtc = expiresAtUtc;
            verification.IssuedAtUtc  = curTimeMs;

            await DoSaveVerification(verification);

            return(verification.Series);
        }