I was putting together a Facebook JS SDK based login on a site I’m working on – only to find that Chrome on iOS does not support the action.
What was even more surprising was the lack of documentation or support online (with Chrome or Facebook) to help work around the issue.
I saw a few suggestion that had solutions based on using Parse or where others suggested using a backend based login API. I didn’t want to install another framework just to solve this problem, and my objective for the interface was to offer a seamless login process that doesn’t interrupt the user’s current modal based workflow.
To make matters worst, and I am really disappointed in Google for this (which is rare,) popping out windows on Google Chrome iOS makes a null reference to the “opener” in certain situations. This makes it hard to complete a seamless login between two windows once the FB auth page is verified.
Below is a solution that checks if FB is authed, if not, manually opens an FB auth window that forwards the user to an Opener Handler page. That page forces a refresh of the openers auth tokens and closes the window. Once completed the user is sent back to the original page (with no page refresh) and can now proceed with a validated FB auth.