Skip to content

authgear/authgear-sdk-xamarin

Repository files navigation

Authgear banner

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 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:

  1. Open the repo in Visual Studio
  2. Make sure "Android SDK Build-Tools 31" is installed.
  3. Plug in an Android device in USB debugging mode
  4. Select XamarinFormSample.Android > Debug > Your Device in the top bar and Press Run
  5. The demo app will be transferred to your device.

XamarinFormSample.iOS

To build the iOS app:

  1. Open the repo in Visual Studio
  2. you need to select a Provisioning Profile
  3. Right-click "XamarinFormSample.iOS" in the left bar and click "Options"
  4. 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
  5. Open "Info.plist" and set an appropriate "Bundle identifier"
  6. 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.

Supported and maintained by

Auhgear is a highly adaptable identity-as-a-service (IDaaS) platform for web and mobile applications. To learn more checkout website