Is there a method for cross app authentication in iOS that allows a user who has an authenticated session with one app to get authenticated for another app from the same developer? It works pretty nicely for the Facebook app and Facebook messenger on iOS, but I couldn't find any documentation on it.
Currently i am using the Facebook SDK to implement the Facebook login to our native iOS application. For this i am using the native iOS SDK for Facebook. This application is both for mobile and web, so is it possible to integrate Facebook login without using the SDK from application side. I mean authentication done fully through API and server side.
Please have a suggestion.
I referred to a SO link:
Design for Facebook authentication in an iOS app that also accesses a secured web service
Sure! You can always use their API directly, which essentially is the same as they do with the SDK.
Check out the documentation on the following link.
https://developers.facebook.com/docs/facebook-login/manually-build-a-login-flow
How to use same Facebook app for different ios application. I'm using facebook graph api 2.0 and i refered Nextpeer document. How to redirect the ios application from the facebook application using a customized URLscheme like fb39877767662comcompanynamegame
I want to do this because I am building an app, which is going to be used within a campaign and many people will be asked to login in their twitter account, in the same device.
Instead of using the default account of the iOS device, you can use Twitter's own OAuth tokens and then handle them independently in your application.
You can see the documentation at Twitter's Developer Site
If you have both Facebook iPhone app and Facebook messenger app installed in your iPhone, I noticed that, as long as you are logged in in the Facebook app, Facebook messenger app knows who you are immediately!
How did facebook do that?
How do two applications talk to each other?
I am interested to know this because I want to know if it is possible for two applications to share some common data (e.g. products database) so that those data only has to be updated in one app.
A suite of iOS applications can use Keychain Access sharing to share credential information. You cannot, however, share a database on the device. You would need to either create one monolithic app, or store the shared data off-device.
I'm gonna take a guess but I think they storage your UDID in their DBs with the current logged user
Basically this is done using Single Sign-On (SSO) feature of the Facebook iOS SDK. According to the facebook developer documentation, https://developers.facebook.com/docs/mobile/ios/build/#implementsso,
it states that if the user already has the Facebook app of version greater than 3.2.3 installed and that the iOS device of the user supports multitasking, then basically the app (the facebook messenger in this case) can ask for the current logged in user information from the main Facebook program.
"One of the most compelling features of the iOS SDK is Single-Sign-On (SSO). SSO lets users sign into your app using their Facebook identity. If they are already signed into the Facebook iOS app on their device they do not have to even type a username and password. Further, because they are signing to your app with their Facebook identity, you can get permission from the user to access to their profile information and social graph"
"If the app is running in a version of iOS that supports multitasking, and if the device has the Facebook app of version 3.2.3 or greater installed, the SDK attempts to open the authorization dialog within the Facebook app. After the user grants or declines the authorization, the Facebook app redirects back to the calling app, passing the authorization token, expiration, and any other parameters the Facebook OAuth server may return."