Problems with two-factor authentication #320

Closed
schwippe opened this Issue Sep 8, 2015 · 25 comments

Projects

None yet

7 participants

@schwippe

We are using the newest iOS SDK version in our app. When trying to log in with an account that has two-factor authentication enabled, we always get the following error message:
"System error (2fa_required). Please try again later."
Are we doing something wrong?

These are our backend dependencies:

com.paypal.sdk
rest-api-sdk
0.11.0


com.paypal.sdk
paypal-core
1.6.8

@schwippe

We also use the Android SDK and have no issues with the two-factor authentication.

@zerodiff

FWIW, we also have a user who was having trouble with two-factor auth, and we're using the 2.9.0 version of the SDK. I'm continuing to investigate, and I'll update if I can reproduce the same issue.

Update: I'm getting:

PayPal SDK: Request has failed with error: 2fa_required - System error (2fa_required). Please try again later. (401) | PayPal Debug-ID: ac3b24fa086b1 [live, PayPal iOS SDK 2.9.0] | Details: (
    {
    "error_description" = "Unable to authenticate the user. 2fa flow completion is neccessary for successful login. ";
}
).
@zerodiff

FWIW, I tried the latest version, and it didn't even send me the text for the one-time password, it just gave me the error that @schwippe got. On 2.9.0, it sends the code, you enter the code, and then nothing (except a log message in XCode when run through the simulator).

@schwippe

Hi @zerodiff, thanks a lot for your comments. So it seems to be a problem within the SDK or with the PayPal backend.

@zerodiff

@schwippe I'd assume it's a problem with the PayPal iOS SDK because you noted that it works on Android (unless they use different backends, which I think is unlikely). I've opened a case with PayPal, and I'll keep any updates posted.

@md42

In case anybody is talking to payPal support I created a ticket 150901-000111 on 1.9.2015 for same problem @schwippe has at Supportsite https://www.paypal-techsupport.com/ but did not yet get an answer

@tomwhipple
PayPal member

Two factor message delivery has been experiencing some problems over the past few days. I believe this has now been resolved.

@tomwhipple tomwhipple added the bug label Sep 11, 2015
@zerodiff

@tomwhipple I tried again, and I still get the error message and after that no prompt to send or enter the auth code for the latest 2.11.4 SDK. However, after the error, I appear to be logged in. I still think something is amiss.

@tomwhipple
PayPal member

Yep, confirmed. I see the 2FA message, but there's definitely some odd behavior. We'll take a look.

@bluk
PayPal member

Hi, can you try release 2.12.1 for a fix for the 2FA flow? Thanks!

@zerodiff

@bluk I'm getting a linker error:

duplicate symbol _llvm.cmdline in:
    ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
    ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskUtility.o)
duplicate symbol _llvm.embedded.module in:
    ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
    ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskUtility.o)
duplicate symbol _llvm.cmdline in:
    ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
    ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskConfiguration.o)
duplicate symbol _llvm.embedded.module in:
    ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
    ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskConfiguration.o)
duplicate symbol _llvm.cmdline in:
    ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
    ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskLinkerID.o)
duplicate symbol _llvm.embedded.module in:
    ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
    ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskLinkerID.o)
duplicate symbol _llvm.cmdline in:
    ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
    ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskComponent.o)
duplicate symbol _llvm.embedded.module in:
    ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskDeviceData.o)
    ios7/Libraries/PayPal-iOS-SDK-2.12.1/PayPalMobile/libPayPalMobile.a(PPRiskComponent.o)
ld: 8 duplicate symbols for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)

This is in Xcode Version 6.4 (6E35b).

@bluk
PayPal member

@zerodiff Thanks for the quick try. Investigating the new issue. There seem to be mixed results with deleting the DerivedData which may help, but it may also be a general Xcode 7 build issue with Xcode 6.4 projects.

@zerodiff

@bluk I was able to build it with Xcode 7, and I get all the way through to entering the code that was SMS'd, but there's no button or "Done" on the number input to actually submit the code to auth. So, almost there, but still can't fully auth. This was a problem on 2.9.0 also, as mentioned above.

Thanks for continuing to look into this. I tried this both in the iPhone simulator with iOS 9 and on my phone with iOS 8.4.

@bluk
PayPal member

@zerodiff Still looking into the Xcode 6.4 vs. Xcode 7 issue but glad you got it to link in Xcode 7. So when you get to the 2-Factor Authentication view, you do not see the "Log In" button in the upper right?

img_0074

@zerodiff

Correct, I do not see the "Log In" button (although you may want to add another button that might look more obvious around where there user is entering the code).

img_0161

@zerodiff

One more from someone else's phone to make sure I'm not hallucinating:

img_1396

@zerodiff

Nevermind... I found the source of the "missing" buttons. We had for our app styles:

    UIBarButtonItem *barButtonAppearance = [UIBarButtonItem appearance];
    [barButtonAppearance setTintColor:[UIColor whiteColor]];

Not knowing exactly how the PayPalPaymentViewController is constructed, it took me a while to figure out. Thanks for the help. I'm able to log in with two-factor auth now.

@ladylo50bear
@tomwhipple
PayPal member

2.12.x requires XCode 7 or newer. This should go away if you upgrade.

@ladylo50bear
@ladylo50bear
@bluk
PayPal member

It seems the original issue with 2-factor authentication is fixed so I'll close this issue. Regarding the Xcode 6.4 vs. 7, if there's a solution it will be provided to fix issue #327.

@bluk bluk closed this Sep 20, 2015
@schwippe

The latest version of SDK in combination with Xcode 7 works fine. Thanks to all of you.

@asifhabib

The biggest problem moving to new environment is that every one is not ready yet.
I restarted my computer and it stop working on Xcode 6.4 with same error. I moved to Xcode 7 for paypal, and GooglePlus framework is not ready for Xcode 7. (headbang)
Is there any old SDK which I can run on Xcode 6.4. I have to just made simple transaction.

@tomwhipple
PayPal member

I'm locking this thread due to a number of spam posts... Please open new issues if need be.

@tomwhipple tomwhipple locked and limited conversation to collaborators Oct 5, 2015
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.