Using (Venmo) OAuth API with Ionic Framework - oauth

I'm currently having some issues using the Venmo API in the context of an app built on the Ionic framework. I'm currently building an Ionic app, which uses the Venmo OAuth API, and trying to test it out on my iPhone. My Venmo authentication flow currently goes like this: I use the Cordova "In App Browser" plugin to open the Venmo OAuth sign-in page in-app, which redirects the user back to my app with a query parameter specifying an access token, allowing me to make requests to Venmo's API endpoints on the user's behalf. When I run my Ionic app on my Mac (via ionic serve) and access it via a web browser, I'm able to use the OAuth API (as you would expect). However, when I run my app on my iPhone, I can't get the app to work with OAuth API because the Venmo authorization page, opened with the In App Browser plugin, can't redirect back to my app. Again, this flow works in browser, but it fails on my iPhone.
To my knowledge, it looks like the OAuth API is the only way I can interact with Venmo through an Ionic app. This is presenting a problem because the "In App Browser" plugin doesn't allow Venmo's authorization page to redirect back to my app when testing on an iPhone. I'm open to trying this process any other way. I see in the Venmo docs that there's an iOS SDK but I don't think I can use that in any way in an Ionic app. If someone has an example of authenticating with other OAuth services in an Ionic app, that would also be helpful. Thanks in advance.

Related

Questions related to Instagram oauth on ios

I'm going to add an Instagram oauth service on my app.
However, problems arise in the iOS environment.
api provided by Instagram (https://api.instagram.com/oauth/authorize)
The Instagram app runs first, and then the safari browser runs. And the authentication for Instagram is executed in the Safari browser.
Therefore, a problem arises. Interworking fails if you are not logged in to our service in the safari browser.
Don't I have an option to authenticate without running an Instagram app?
Summary: I don't want Instagram app to run when using Instagram oauth-api in my service.

Issue : Connecting using OAuth to Jawbone from android app

We are using Jawbone API to pull data tracked using jawbone devices.
Our users are successfully able to sign in when they access Jawbone sign in page during OAuth process from our website.
However, they are not able to sign in when they access jawbone authentication page from our android app during OAuth process. This authentication page is launched in webview on andriod.
On log in page after entering correct credentials and clicking on Sign In button does nothing. The page even does not display whether credentials were correct or not.
Is the OAuth authentication user agent (web/app) dependent?
We have started facing this issue just recently and before it used to work perfectly.
Jawbone's OAuth2 flow operates through web login and approval pages, then issues a redirect callback to your server. Jawbone has several partners who do this within their Android apps.
It sounds like your app is not handling the callback half of the OAuth2 flow correctly, but it's hard to say based on this description.
Have you reviewed the Authentication documentation?
Also, consider Jawbone's Android SDK.

Cordova InAppBrowser delay in passing cookies on iOS 9.2

We are building an app using the cordova in-app browser as part of our authentication flow. We are seeing a problem with cookies not being passed by cordova on iOS 9.2 and later. We are using the Ionic platform for the app. Here is a detailed description:
We login users to the app by opening a login url (OKTA SSO login for the company) in the Cordova in-app browser plugin.
This renders the OKTA SAML template and allows the user to enter the credentials.
Upon do-login action, the in-app browser follows all the redirects and eventually on a successful Authentication renders the Drupal site from which we get content for the app.
At this point, we have the required cookie attached to the response to move forward and make direct API calls from the ionic application to the Drupal Resource API ( we do close the in-app browser once we load the Drupal site in the in-app browser).
This solution works perfectly on android and pre ios 9.2 devices.
With ios 9.2, there is a delayed hand-off of the cookies to the ionic webview once we close the in-app browser. I tried leaving the in-app browser open and i can access all the authenticated resources properly within the in-app browser right away without any delay, once the authentication is complete. So there is no issue withe the OKTA SSO flow or the cookie. There seems to be an issue with the cookie getting attached to the ionic webview from the in-app browser plugin.
On a average, it takes about a minute for the cookie to show up and we can then make API calls to Drupal. ( We keep calling Drupal API and on getting 403, we redirect to this same login flow and this continues for a while, until the cookie is available and the API call goes through successfully.)
Is there a way to get the cookie attached to the ionic webview from the in-app browser plugin without encountering this delay?

Gmail API 0Auth 2.0 using OAuth Phonegap SDK

Has anyone had success in using the Gmail API's authorization in a Phonegap application? I found this (http://phonegap-tips.com/articles/google-api-oauth-with-phonegaps-inappbrowser.html) that describes using the generic Google API OAuth with Phonegap's inappbrowser plugin, but the newly released Gmail API does OAuth authorization differently, and I'm not sure how to get it to work with Phonegap.
Note: It does work when I try a web version of my app, but the button that brings up the authorization screen doesn't do anything in Phonegap..not sure why. I do have the appropriate Android credentials for the app in the Google Developer's Console.
UPDATE: Using OAuth's Phonegap SDK (found after registering your app here: https://oauth.io/), I am able to authenticate a Google Account. However, I am unsure how to then call Gmail API methods or correctly pass whatever authentication tokens from the OAuth SDK to any Gmail API code. Has anyone done this and can share their knowledge?
I found a solution using the OAuthio Phonegap SDK. Then I can call the appropriate HTTPS requests from the Gmail API.
If you want to login your users via Google on iOS and Android, then use this new plugin I just created: https://github.com/EddyVerbruggen/cordova-plugin-googleplus
You will also receive the name and gender etc from the plugin. The plugin will also try SSO with any other Google apps installed on your device by using the Google+ SDK on both platforms.

How to get FirebaseSimpleLogin Facebook login working in a fullscreen/homescreen iOS Web App

I have an angular app that painlessly integrates with Firebase's SimpleLogin service for Facebook on the web, however, it relies on opening a pop-up to do so.
Although iOS 7.0.3 seems to have fixed some severe bugs where alerts and popups were not functional in fullscreen web apps (i.e. after 'Add to Homescreen'-ing a website via Safari), the Facebook login fails after redirecting to Facebook and granting approval, landing back on a blank page (which requires an app restart to remove).
I suspect this has something to do with the was Facebook is redirecting back, but AFAIK I don't have control over that, nor would hacks like these fix this.
Are there any workaround that exist for this problem?
[Engineer at Firebase] Support for redirect-based OAuth has been added to the Firebase Simple Login Web Client as of v1.3.0, available from the Firebase CDN or via Bower using bower install firebase-simple-login.
This update enables the Firebase Simple Login client to detect iOS "standalone" applications and handle the redirect-based OAuth automatically in your application.

Resources