Nodejs Apple native authentication - ios

i'm a nodejs backend developer and i have an app with nodejs backend and the client side is ios, swift. I need to to do the feature sign in with apple
I figure out there are 2 ways to sign in with apple. One is using restful api, one is sign in with native device.
I know how to do the sign in with apple using restful api, because i worked with passportjs and i did the sign in with fb, twitter before. However i don't understand how the sign in with apple (the native way) work on the nodejs side.
Here is the article: https://auth0.com/docs/connections/apple-siwa/add-siwa-to-native-app

As you are using regular web app (node), you should use web based flow. Native implementation is not applicable in your case. You can enable Sing In with Apple like any other social login in Auth0.
https://auth0.com/docs/connections/apple-siwa/add-siwa-to-web-app

Related

Sign in with Apple - Manual Form

App submissions to the app store which contain social logins are required to have a manual log in form along side the other logins (I am assuming this incase the 3rd party SDKs break then the user still has a method to log in).
Since apple have released their native 'Sign in with apple' capability (WWDC 2019) does this mean we can submit apps without a manual form? or will this still be a requirement?
I cannot find anything in the documentation to suggest either way.
The requirement is only if your app have social network login (Facebook, Google).
If your app uses a build in login (user/password), you don't need to implement.
In simple words, if your app is...
NOT USING THIRD PARTY LOGIN
If your app is not using any Third party login services then you do not need to implement login with Apple feature in your app.
USING NATIVE SIGN-IN/SIGNUP
If your app is using native sign-in/sign-up for user(user fill registration form and then login), then also you do not need to implement login with Apple in your app
USING THIRD PARTY LOGIN
If your app is using third party login Services like Facebook login, google login, Twitter login, etc. then You have to implement Sign in With Apple in your app.
USING THIRTY PARTY LOGIN + NATIVE SIGN-IN/SIGNUP(MIXED APPROACH)
If your app allows user to sign up via email by filling a registration form and also offers third party login then your app must implement Sign in with Apple.

Single Sign On authentication in IOS requires LinkedIn App

We've migrated to the latest LinkedIn IOS SDK which only supports single sign-on (SSO) authentication, in conjunction with the official LinkedIn mobile application. Our app works really well with this, however Apple will not approve our latest version, because it requires the LinkedIn app to be installed for the authentication to work.
We need a solution which handles the scenario when the LinkedIn app is not present, to use web authentication, however LinkedIn are very specific stating Mobile SDK-enabled applications require the official LinkedIn iOS app to be installed on the device to function properly" https://developer.linkedin.com/docs/ios-sdk - The Mobile SDK was released in July, so presume we are not alone in having our app rejected by Apple approvals.
Could you test for the presence of the linked-in app:
if it is not there: implement OAuth2 directly through your app
if it is there: use it or your OAuth2 implementation (which you'd probably err on the side of using their app for the link-ability between any features of the app you may need in yours).
Thereby avoiding the REQUIREMENT to have the app installed.
Researching for this I did find:
Mobile vs server-side access tokens
Presently, there is no mechanism available to exchange them. If you
require tokens that can be used in both the mobile and server-side
environment, you will need to implement a traditional OAuth 2.0
solution within your iOS environment to acquire tokens that can be
leveraged in both situations.
from: https://developer.linkedin.com/docs/ios-sdk-auth
which suggests that authentication away from the app is supported.
Pleased to confirm that the solution kindly suggested by Madivad of using the new LinkedIn SDK if the LinkedIn app is installed and when it's not reverting to traditional OAuth 2.0 works fine. Apple are also back on our Christmas card list as they approved this latest version today within 40 minutes of submission:) Thanks Madivad for helping out with this.

use titanium appcelerator user as oauth for third party applications

I have a appcelerator titanium app, and I would like to use the same users and password for other apps, not related to appcelerator ACS or titanium, the question is: can I use appcelerator ACS as oauth for other applications?
I'm not familiar with ACS to much but from documentation I can find below:
it is not proffered as the ACS mention in its documentation
Your app must prove that it is allowed to talk to ACS. This keeps your
data secure by preventing anyone from making requests to ACS that
impersonate your app.
but you can create new app with new client-id as in ACS mention that:
You can integrate ACS into your application using the REST API, the
Titanium SDK, or the ACS native iOS and Android SDKs.
http://docs.appcelerator.com/cloud/latest/#!/guide/acs_quickstart
http://docs.appcelerator.com/cloud/latest/#!/guide/acs_authentication

Google Plus Over the Air installs via server-side oauth

Google released nice feature called Over-The-Air Installs. But documentation has example only for google's sign-in button.
Checked Google API PHP Client and it doesn't have anything related. Tried adding apppackagename and app_package_name to authorization url - didn't help. Another problem is that Google doesn't enable this feature for all clients.
Is it possible to use it via oauth triggered on server-side? Does Google somehow indicate that you're allowed to use this feature?
It is currently not possible to trigger Over-The-Air Installs using the server-side flow. It is recommended that you use the client-server flow as described and demonstrated in the quick-start sample apps instead of using a server-side flow.
You can direct users to install the app at the conclusion of your install by linking to your app in the play store. From the play store, the user could still install your app directly to their device, it would just not happen in the sign-in dialog.
Even hybrid client-server flow needs to implement the "sign-in button" to your page...
https://developers.google.com/+/web/signin/server-side-flow
https://developers.google.com/+/web/signin/client-to-server-flow
Don't know why Google is doing this way!

How to oauth-login a server app via the mobile client (especially iOS, Twitter, but in general too)

We have a web application that supports Facebook and Twitter login/signup via oAuth (and can also post to FB/TW). Now we are building a mobile client and naturally we want people to be able to login-signup via FB-Twitter on mobile as well, on iOS even using system-integrated accounts.
Now mobile app and our server app are two different apps, however, and if I get oAuth correctly, we'll need to have two authentications: one for a mobile client (system account can be used), another one for a server (we'll have to show WebView for it).
Yet some existing apps seem to be fine with single authentication only (e.g. Flickr and Foursquare! At least 4sq seems to be fine with iOS system FB account only. How is it possible?
Do they share consumer key/secret between mobile and web app making it essentially the same app?
Do they use some FB-specific extension to oAuth
Do they only use auth token wherever it comes from making it a user ID?
Something completely different?
Old question, but this may help someone who finds their way here.
Twitter Reverse Auth

Resources