title | name | alias | language | framework | hybrid | image | tags | snippets | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Xamarin Tutorial |
Xamarin |
|
|
|
false |
//auth0.com/lib/platforms-collection/img/xamarin.png |
|
|
This tutorial explains how to integrate Auth0 with a Xamarin application (iOS or Android). Xamarin.Auth0Client
helps you authenticate users with any Auth0 supported identity provider, via the OpenId Connect protocol (built on top of OAuth2). The library is cross-platform, so once you learn it on iOS, you're all set on Android.
We have a Objective-C Binding Library for our Lock implementation in iOS, you can check it out in our Github repo
@@snippet(meta.snippets.dependencies)@@
For more information, please visit the Xamarin documentation page.
Go to the Application Settings section in the Auth0 dashboard and make sure that Allowed Callback URLs contains the following value:
https://@@account.namespace@@/mobile
There are three options to do the integration:
- Using the Auth0 Login Widget inside a Web View (this is the simplest with only a few lines of code required).
- Creating your own UI (more work, but higher control the UI and overall experience).
- Using specific user name and password.
To start with, we'd recommend using the Login Widget. Here is a snippet of code to copy & paste on your project:
@@snippet(meta.snippets.setup)@@
@@snippet(meta.snippets.use)@@
Xamarin.Auth0Client
is built on top of theWebRedirectAuthenticator
in the Xamarin.Auth component. All rules for standard authenticators apply regarding how the UI will be displayed.
If you know which identity provider you want to use, you can add a connection
parameter and the user will be sent straight to the specified connection
:
var user = await auth0.LoginAsync(this, "google-oauth2"); // connection name here
connection names can be found on Auth0 dashboard. E.g.:
somegoogleapps.com
,saml-protocol-connection
, etc.
var user = await auth0.LoginAsync(
"sql-azure-database", // connection name here
"[email protected]", // user name
"1234"); // password
The Auth0User
has the following properties:
Profile
: returns aNewtonsoft.Json.Linq.JObject
object (from Json.NET component) containing all available user attributes (e.g.:user.Profile["email"].ToString()
).IdToken
: is a Json Web Token (JWT) containing all of the user attributes and it is signed with your client secret. This is useful to call your APIs and flow the user identity.Auth0AccessToken
: theaccess_token
that can be used to access Auth0's API. You would use this for example to link user accounts.
Browse the samples on GitHub from here.
Congratulations!