Bit.Core.Identity.JwtBearerSignInManager.TwoFactorSignInAsync C# (CSharp) Method

TwoFactorSignInAsync() public method

public TwoFactorSignInAsync ( User user, string provider, string code, Device device = null ) : Task
user User
provider string
code string
device Device
return Task
        public async Task<JwtBearerSignInResult> TwoFactorSignInAsync(User user, string provider, string code, Device device = null)
        {
            if(user == null)
            {
                return JwtBearerSignInResult.Failed;
            }

            if(await UserManager.VerifyTwoFactorTokenAsync(user, provider, code))
            {
                var token = await SignInAsync(user, false);

                var success = JwtBearerSignInResult.Success;
                success.Token = token;
                success.User = user;

                if(device != null)
                {
                    var existingDevice = await _deviceRepository.GetByIdentifierAsync(device.Identifier, user.Id);
                    if(existingDevice == null)
                    {
                        device.UserId = user.Id;
                        await _deviceRepository.CreateAsync(device);
                    }
                }

                return success;
            }

            return JwtBearerSignInResult.Failed;
        }