Unity3D Login Framework is a module codebase to help you organize and realise different type of login (Facebook, GoogleSignIn, Mail, Device ID, etc ) to backend services (Firebase, PlayFab, GameSpark and so on) with ready made realization some of them.
- Сhoose backend system to your goals
- Ready made Features
- How to use
- Known issues
- Release notes
- License
There are a lot of backend platforms for live games and application with rich API of necessary functionality to develop success project. Once to authorise to one of them you get access to many features. Some features are ready made from the box, some features can be implemented manually, such as login using a custom token ID or implementing Leaderboard using the Database and Cloud Functions
Feature | Firebase | Playfab | Gamespark |
---|---|---|---|
Authentication | |||
Anonymous | + | + | - |
Device ID (iOS, Android) | - | + | - |
Google Sign in | + | + | + |
+ | + | + | |
+ | + | + | |
GitHub | Token id | + | Token id |
+ | Token id | Token id | |
Twitch | + | Token id | - |
Features | |||
Cloud Functions | +(beta) | + | + |
Realtime Database | + | + | + |
Crashlytics | + | - | - |
Cloud Storage/ Hosting | + | - | - |
Cloud Messaging | + | + | + |
Invites | + | + | + |
The framework is easily extensible, in the current version it support these features, see below: Backend: Firebase Playfab
Login: Google Sign In Facebook Mail login (Email/Password)
Clone this repo, after that you should choose the backend service and login system to use. After that configure each one. You will see some error, but don’t worry, after import SDKs, we will resolve all error.
- Click https://firebase.google.com/download/unity to download Firebase SDK for Unity. Extract and you will see all plugin of Firebase for Unity. Select Assets -> Import Package -> Custom Package… select FirebaseAuth plugin to import to this template.
- After that or before your should register on the Firebase site.
- Go to https://console.firebase.google.com/ and create new project. On Welcome screen, click Add Project.
- After that configure Android and iOS apps on the site
- Don't forget to download Google-Services-Info.plist for iOS and google-services.json to Android.
- Go to Authentication and add all necessary type of login in your project (Facebook, Twitter...)
That's all!
- For configure Playfab, please follow this instructions https://api.playfab.com/docs/getting-started/unity-getting-started
Bedore configure Facebook you should configure OpenSSL and JDK
OpenSSL Download: https://code.google.com/archive/p/openssl-for-windows/downloads
- Extract
- Configure on System Environment: add ssl path and JDK to Path variable
Setup Facebook
-
Go to https://developers.facebook.com/ and click Add New App.
-
Input project information and click Create App ID
-
Select Facebook Login product
-
After that add iOS and Android from Dashboard panel.
-
Input package name and main class (this information you should be got from Unity Facebook plugin)
-
(If you use Firebase, please copy OAuth redirect URI from Firebase Facebook setup and put to Valid OAuth redirect URIs -> Save.)
-
Click https://developers.facebook.com/docs/unity/downloads to download Facebook SDK Select Assets -> Import Package -> Custom Package… select facebook-unity-sdk-7.10.0 plugin to import to this template. Remember uncheck import PlaySerrviceResolver if you already have after import Firebase SDK and Google Sign in SDK or some other Google SDKs
If you want to use "Google Sign In" please import it SDK https://github.com/googlesamples/google-signin-unity If no, just delete GoogleSignInPlatform.cs file.
So, if you are there you have already import Login framework with demo and all necessary Login and Backend SDKs Let's go ahead to setup framework.
See the LoginDemo Scene and LoginDemoApplication.cs
First, we need init framework and add all nessesary login services and one backend platform
Example:
private void InitLogin()
{
ServerAuthManager.Instance.AddBackerndPlatform(PlatformEnums.Backend.Firebase, new FirebasePlatform());
ServerAuthManager.Instance.AddBackerndPlatform(PlatformEnums.Backend.Playfab, new PlayfabPlatform());
ServerAuthManager.Instance.AddBackerndPlatform(PlatformEnums.Backend.Gamespark, new GameSparkPlatform());
ServerAuthManager.Instance.AddLoginPlatform(PlatformEnums.Login.Facebook, new FacebookPlatform());
ServerAuthManager.Instance.AddLoginPlatform(PlatformEnums.Login.GoogleSignin, new GoogleSignInPlatform());
ServerAuthManager.Instance.AddLoginPlatform(PlatformEnums.Login.Mail, new LoginPassPlatform());
ServerAuthManager.Instance.Init(ProjectSettings.SERVER_TYPE);
}
After that, please add all necessary handlers
//Login events
MessagingSystem.Instance.AddEventListener(typeof(LoginEvents.FacebookAuthEvent), FacebookAuthHandler);
MessagingSystem.Instance.AddEventListener(typeof(LoginEvents.FacebookCredentialsLoginEvent), FacebookCredentialsLoginHandler);
MessagingSystem.Instance.AddEventListener(typeof(LoginEvents.GoogleSignInAuthEvent), GoogleSignInAuthHandler);
MessagingSystem.Instance.AddEventListener(typeof(LoginEvents.GoogleSignInCredentialsLoginEvent), GoogleSignInCredentialsLoginHandler);
MessagingSystem.Instance.AddEventListener(typeof(LoginEvents.LoginLogEvent), LoginLogHandler);
MessagingSystem.Instance.AddEventListener(typeof(LoginEvents.LoginSignInDoneEvent), LoginSignInDoneHandler);
MessagingSystem.Instance.AddEventListener(typeof(LoginEvents.UserCreateDoneEvent), UserCreateDoneHandler);
And use Login with parameters
ServerAuthManager.Instance.Login(PlatformEnums.Login.Mail, ProjectSettings.SERVER_TYPE);
or
ServerAuthManager.Instance.Login(PlatformEnums.Login.GoogleSignin, ProjectSettings.SERVER_TYPE);
and use RegisterUser and LogOut to register user via email and logout
//log out
ServerAuthManager.Instance.LogOut();
//register user
ServerAuthManager.Instance.RegisterUser(ProjectSettings.SERVER_TYPE, mailField.text, passField.text, nicknameField.text);
If you don't use some Platforms, please detete nessesary classses from Platforms folder (ex: TwitterPlatform or GamesparkPlatform)
- Remember login
- Gamespark realization
- Login via Devide Id
- Twitter realization
- API realization for each backend platforms
0.1: Login Framework with base functionality
The MIT License (MIT)
Copyright (c) 2018 VironIT http://vironit.com
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.