What's a redirect URI? how does it apply to iOS app for OAuth2.0?
Read this:
http://www.quora.com/OAuth-2-0/How-does-OAuth-2-0-work
or an even simpler but quick explanation:
http://agileanswer.blogspot.se/2012/08/oauth-20-for-my-ninth-grader.html
The redirect URI is the callback entry point of the app. Think about how OAuth for Facebook works - after end user accepts permissions, "something" has to be called by Facebook to get back to the app, and that "something" is the redirect URI. Furthermore, the redirect URI should be different than the initial entry point of the app.
The other key point to this puzzle is that you could launch your app from a URL given to a webview. To do this, i simply followed the guide on here:
http://iosdevelopertips.com/cocoa/launching-your-own-application-via-a-custom-url-scheme.html
and
http://inchoo.net/mobile-development/iphone-development/launching-application-via-url-scheme/
note: on those last 2 links, "http://" works in opening mobile safari but "tel://" doesn't work in simulator
in the first app, I call
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"secondApp://"]];
In my second app, I register "secondApp" (and NOT "secondApp://") as the name of URL Scheme, with my company as the URL identifier.
Swift OAuth2.0 with redirectURI
If you are targeting iOS 13 you can use the new AuthenticationServices library provided by Apple.
It will work on both macOS and iOS.
Maybe this would help other developers, I create a simple and small swift package to handle OAuth2 in Swift, you can check the demo project it works very well /p>
https://github.com/hadiidbouk/SimpleOAuth2
Edit:
You are passing the wrong URLs, they should be like this
let request: OAuth2Request = .init(authUrl: "https://stackoverflow.com/oauth",
tokenUrl: "https://stackoverflow.com/oauth/access_token/json",
clientId: "<<your client id>>",
redirectUri: "redirect-uri://stackexchange.com",
clientSecret: "<<your client secret>>",
scopes: ["private_info"])
What OAuth 2.0 Redirect URI do we use for Cordova iOS/Android mobile applications?
Check out this plugin: https://www.npmjs.com/package/cordova-plugin-customurlscheme?activeTab=readme. You add a url scheme when adding the plugin and then you can grab the redirect url (containing the token(s) that you need) using the handleOpenURL()
function after the user authenticates. This is all very well documented in the README of the project.
Square API + OAuth2: How do I set my redirect URL to my iOS app?
When you guide a user through the oauth flow for your app, you must specify a redirect_uri parameter that matches that value you have specified in the Square developer portal. Note that this redirect_uri must start with http or https and correspond to a webpage on your server.
Related Topics
Firebase with Swift 3 Counting the Number of Children
How to Check If a File Exists in Documents Folder
How to Prevent the iPhone Screen from Dimming or Turning Off While My Application Is Running
Change String Color with Nsattributedstring
Why am I Getting Ibtool Failed with Exit Code 255
Swift - Download a Video from Distant Url and Save It in an Photo Album
Xctest and Asynchronous Testing in Xcode 6
How to Resize an Image or Done as a Nsattributedstring Nstextattachment (Or Set Its Initital Size)
How to Mutate Structs in Swift Using Map
Swift Image Retrieving from Parse Sdk - Getting Crashed
Xcode - Bundle Format Unrecognized, Invalid, or Unsuitable
Uicollectionview Spacing Margins
How to Disable/Enable the Sleep Mode Programmatically in iOS
Swift - How to Hide Back Button in Navigation Item
Missing Cfbundleiconname in Xcode9 iOS11 App Release