Awesome
<div align="center"> </div>Authgear SDK for Xamarin
With Authgear SDK for Xamarim, you can easily integrate authentication features into your Xamarin apps. In most cases, it involves just a few lines of code to enable multiple authentication methods, such as social logins, passwordless, biometrics logins, one-time-password (OTP) with SMS/WhatsApp, and multi-factor authentication (MFA).
Quick links - š Documentation š Getting Started š ļø Troubleshooting š„ Contributing
What is Authgear?
Authgear is a highly adaptable identity-as-a-service (IDaaS) platform for web and mobile applications. Authgear makes user authentication easier and faster to implement by integrating it into various types of applications - from single-page web apps to mobile applications to API services.
Key Features
- Zero trust authentication architecture with OpenID Connect (OIDC) standard.
- Easy-to-use interfaces for user registration and login, including email, phone, username as login ID, and password, OTP, magic links, etc for authentication.
- Support a wide range of identity providers, such as Google, Apple, and Azure Active Directory (AD).
- Support biometric login on mobile, Passkeys, and Multi-Factor Authentication (MFA) such as SMS/email-based verification and authenticator apps with TOTP.
Documentation
- View the SDK API Reference at https://authgear.github.io/authgear-sdk-xamarin/.
- Learn how to manage your users through Admin Portal or Admin API.
- NuGet Gallery: https://www.nuget.org/packages/Authgear.Xamarin/
View other Authgear Documentation at https://docs.authgear.com/
Getting Started
Follow the easy steps to start using it:
Build
Prerequisites
- Xamarin workload (Android + iOS) in Visual Studio
- Docfx (for doc generation)
Known Limitation
Build
The sample project can be built on both windows and macOS. The sample has a dependency on the library project, and building the sample would build the library automatically.
However, for packaging the library (e.g. in CICD), since the library project is using MSBuild.Sdk.Extras for its single project, multi-targeting feature (that allows targeting Xamarin.iOS and Xamarin.Android at once within the same project), the project needs a "Desktop msbuild" to package the library. dotnet pack
or dotnet msbuild
would not work (it would complain needing desktop msbuild). Since "Desktop msbuild" is only available on windows, currently, only windows is capable of packaging the library.
Current CI already uses windows image and packs the resultant nuget package as a github action artifact so developers shouldn't need to pack the library on their own.
.NET 6's sdk style project natively support single project, multi-targeting for net6.0-android
, net6.0-ios
and can be built, packed with dotnet build
and dotnet pack
on both windows and macOS. But adopting it would obviously force customers to migrate to .NET 6, so that route was not taken. When appropriate, future upgrades to this SDK can simply revert MSBuild.Sdk.Extras
to Microsoft.NET.Sdk
and multi-target .NET 6+ mobile TFMs.
Demo Apps
Two demo apps are included in the Github repo under XamarinFormSample/
. They demonstrate the key features of the SDK on Android and iOS.
XamarinFormSample.Android
To build the Android app:
- Open the repo in Visual Studio
- Make sure "Android SDK Build-Tools 31" is installed.
- Plug in an Android device in USB debugging mode
- Select XamarinFormSample.Android > Debug > Your Device in the top bar and Press Run
- The demo app will be transferred to your device.
XamarinFormSample.iOS
To build the iOS app:
- Open the repo in Visual Studio
- you need to select a Provisioning Profile
- Right-click "XamarinFormSample.iOS" in the left bar and click "Options"
- Go to "Build" and "iOS Bundle Signing", select a valid provisioning profile or choose "Automatic" for the desired "Configuration" and "Platform" and press "OK" to save the settings
- Open "Info.plist" and set an appropriate "Bundle identifier"
- Select XamarinFormSample.iOS > Debug > Your Device in the top bar and Press Run
Troubleshooting
Please check out our Get help to get solutions for common installation problems and other issues.
Raise an issue
To provide feedback or report a bug, please raise an issue on our issue tracker.
Contributing
Anyone who wishes to contribute to this project, whether documentation, features, bug fixes, code cleanup, testing, or code reviews, is very much encouraged to do so.
To join, just raise your hand on the Authgear Discord server (#trouble) or the GitHub Authgear's discussion board.
If you are unfamiliar with how to contribute to GitHub projects, here is a Getting Started Guide. A full set of contribution guidelines, along with templates, are in progress.