Comment on page
Unity Authorization Example
Explore real-world code samples that are used to implement authorization in Unity applications running on Windows, Android, and iOS platforms
There are a number of HTTP frameworks available for Unity applications that simplify the process of working with HTTP requests. These frameworks provide developers with a convenient and efficient way to communicate with external APIs, including the HyperID REST API.
UnityWebRequest, HttpClient, RestSharp, and many others provide developers with the tools and abstractions they need to make HTTP calls. Developers can choose the method that best suits their needs and preferences.
However, integrating authorization web flows can be challenging. Employing a web browser becomes essential in this process.
The primary goal of this example is to provide source code demonstrating seamless interaction with an external browser for authorization.
All the necessary source code for authorization handling can be found in the Assets\Scripts\eHyperIdAuthTest.cs file. It contains several classes:
- The main class, eHyperIdAuthTest, handles the core functionality and user interface interactions.
- The eBrowser class is responsible for launching an external browser specifically for the authorization flow. It is important to note that all parameters should be URL-encoded.
- The eRedirectUriListener class (used only for the Windows platform) is designed to listen for the redirect_uri callback, allowing the application to capture and process the necessary authentication data. It uses the HttpListener class from the System.Net framework.
- The eConst class contains essential configuration constants, such as clientID, client_secret, and redirect_uri. Developers can register their own Client via the HyperID Developer's Portal and utilize their unique credentials for testing and integration purposes.
When using a custom clientID / clientSecret, it is important to ensure that the configured redirect URI is also registered through the HyperID Developer's Portal. This step is required to ensure successful integration.
The platform-specific code is determined by defining one of the following constants during the build process: UNITY_STANDALONE_WIN, UNITY_ANDROID, or UNITY_IOS. These constants are automatically set when the target platform for the build is selected. They are helpful for identifying the code that is specific to each platform.
The primary variation lies in how the
redirect_uricallback is handled.
Windows uses the eRedirectUriListener class, described above, which is based on the HttpListener class from the System.Net framework.
Deeplink and the standard Unity
OnApplicationFocus()are used on mobile platforms. If deeplink is properly configured, developers can obtain
Depending on the mobile platform, the deeplink registration may be different:
- Android: unity\Assets\Plugins\Android\AndroidManifest.xml
- iOS: unity\ProjectSettings\ProjectSettings.asset (iOSURLSchemes parameter)