Esempio n. 1
0
        public async Task<JwtResponse> CompleteUserVerification(ApplicationUser user, string phoneNumber, string code)
        {
            var result = await userManager.ChangePhoneNumberAsync(user, phoneNumber, code);
            if (result.Succeeded)
            {
                //CHECK: looks like I don't need it anymore (most likely uses cookie)
                //await signInManager.SignInAsync(user, isPersistent: false);

                //TODO: rethink this approach
                await AddClaim(user, ApplicationClaims.Verified);
                var jwtIdentity = await CreateJwt(user);

                var refreshToken = identityProvider.GenerateRefreshToken(jwtIdentity);
                jwtIdentity.RefreshToken = refreshToken;

                var options = JwtTokenProducer.InitializeOptions(configuration);
                return JwtTokenProducer.Produce(jwtIdentity, options);
            }

            logger.LogError($"Failed to complete user {user.UserName} verification with ex: {result.Errors.First().Description}.");
            return null;
        }