Ejemplo n.º 1
0
        // One-Time-Token Request (This method should be called from client-side code, but is included in this SDK for completeness.)
        public async Task <TokenResponse> RegisterOneTimeToken(string jwt, OneTimeTokenRequest req)
        {
            string jsonRequest  = CommonService.JsonSerializer <OneTimeTokenRequest>(req);
            string jsonResponse = await PostRequestUsingBearerAuth(jsonRequest, "registeronetimetoken", jwt);

            return(CommonService.JsonDeSerializer <TokenResponse>(jsonResponse));
        }
Ejemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="request"></param>
        /// <returns></returns>
        public async Task <AuthToken> VerifyAccount(OneTimeTokenRequest request)
        {
            var oneTimeToken = await Context.OneTimeTokens.FirstOrDefaultAsync(t =>
                                                                               t.Token == request.Token &&
                                                                               t.TokenType == (byte)OneTimeTokenType.AccountVerification &&
                                                                               t.ValidUntil > DateTime.Now);

            if (oneTimeToken == null)
            {
                return(null);
            }

            var user = await Context.Users.FirstOrDefaultAsync(u => u.Email == oneTimeToken.Email && !u.IsVerified);

            if (user == null)
            {
                return(null);
            }

            var token = await authManager.GenerateTokenAsync(user.Id, request.DeviceId);

            Context.OneTimeTokens.Remove(oneTimeToken);

            user.IsVerified = true;

            Context.Update(user);

            await Context.SaveChangesAsync();

            return(token);
        }
Ejemplo n.º 3
0
        public async Task <AuthToken> PostVerifyAccount([FromBody] OneTimeTokenRequest data)
        {
            var token = await userManager.VerifyAccount(data);

            return(token);
        }