Simple Sign-In with Microsoft provides Microsoft sign-in with OAuth 2.0 for Android, iOS, Windows, Mac, Universal Windows Platform (UWP) and WebGL apps made with Unity. You can also get access tokens to make REST API calls.
Need sign-in for other platforms?
● Google
● Apple
● Facebook
● X (Twitter)
● Telegram
● Microsoft
Authentication may be a headache, especially for beginners, especially on different platforms. So I decided to take a fresh look of current possibilities that Microsoft and Unity provide at the moment. And after a week of research I said "Bingo!". My asset is an extremely simple solution with about 200 lines of code only. Lightweight, tiny and clean, with no massive plugins and 3rd party libs!
Benefits
● Cross-platform user auth for cross-platform games and apps
● No plugins, not 3rd party libs, no dependencies
● No impact to build size
● Get access tokens for integration with other Microsoft services
● More security for client-server apps (get access tokens on a client, get all user data on a server to avoid tampering)
● JSON Web Tokens (JWT) validation
● SFSafariViewController is used on iOS (required by App Store review)
● Deep linking for Windows (UNITY_STANDALONE_WIN)
Setup steps
Please visit our GitHub for setup instructions.
Generic workflow (for platforms that support deep linking)
● Your app navigates users to Microsoft using a default web browser
● Users perform sign-in to their Microsoft account
● Microsoft redirects users to your app (using deep linking when possible) and provides an authorization code in URI parameters
● The app is activated and obtains an authorization code
● The app exchanges the code for an access token
● The app requests user data with the access token (ID, name, email and other data according access scope defined)
Loopback flow for Editor and Windows (optional)
● Microsoft redirects users to http://localhost:PORT/
● The app listens to localhost using HttpListener
Middlware flow for WebGL
● Redirect to Authorization Middleware is used to temporary save an auth code
● The app obtains the code from Authorization Middleware with a POST request
Known issues
Please visit our GitHub to check known issues.
Support
● GitHub - Wiki
● GitHub - FAQ & Troubleshooting
● GitHub - Bugs & requests
● Discord - Questions, live chat with developers
It would be super awesome if you rate ★★★★★ our asset and leave your feedback! Your reviews inspire us for creating and improving our assets. Thanks and good luck with your projects!