Cet article détaille les étapes de base pour authentifier les utilisateurs finaux avec leurs identifiants Google OpenID Connect
dans un exemple d'application Android Unity. Si vous souhaitez utiliser Google Play Game
pour authentifier les utilisateurs finaux avec leurs identifiants Google, consultez l'article .Authentication - Google (PlayGame)
Prérequis
Vous disposez d'un compte Google pour créer des projets dans GCP
Votre appareil de test avec l'API Android niveau 19 ou supérieur
Étape 1: Créer une application sur l'éditeur Unity
Ouvrez le hub Unity et créez un nouveau projet.
Téléchargez et importez le dernier package Unity du client brainCloud dans ce projet. Une fois le plugin correctement importé, l'onglet brainCloud apparaîtra dans le menu de l'éditeur.
Téléchargez et importez la dernière version du
Google Sign-In Unity Plugin
depuis les dépôts d'exemples Google. Nous l'utiliserons pour exiger lesserver auth codes
qui seront transmis à la méthodeAuthenticateGoogle
de brainCloud dans notre exemple de code. (Notez que certains fichiers sousPlayServiceResolver
peuvent être obsolètes; vous devrez probablement installer le pluginunity-jar-resolver
depuis les dépôts d'exemples Google pour le mettre à jourPlayServiceResolver
. De plus, si vous rencontrez une erreur de fichier dupliquéTask DLL
, supprimez simplement celui qui a été installé avec le plugin situé dans le répertoireAsset->Parse->Plugins
.)Vous devriez trouver ce répertoire de plugins importés sous Assets.
Ouvrez
brainCloud setting
à partir de l'onglet, sélectionnez ou créez une application back-end brainCloud liée à votre projet.
Créez des éléments d’interface utilisateur pour appeler l’initialisation de brainCloud et Google SignIn à partir de votre script.
Les fonctions et le code des boutons sont similaires à ceux présentés ci-dessous. Une fois que l'utilisateur se connecte à son compte Google avec Google Play Games en définissant
UseGameSignIn
àfalse
, nous pouvons obtenir sonuserId
en appelantGetUserId
() depuis la fonction de success callback, et obtenir leuremail
puis les transmettre à la méthode d'authentification Google de brainCloud:AuthenticateGoogleOpenId
public void GoogleAPISignIn()
{
bcreturn.GetComponent<Text>().text = "Google sign in......";
GoogleSignIn.Configuration = configuration;
//GoogleSignIn.Configuration.UseGameSignIn = true;
GoogleSignIn.DefaultInstance.SignIn().ContinueWith(GoogleSinInCallback);
}
public void GoogleSinInCallback(Task<GoogleSignInUser> task)
{
if (task.IsFaulted)
{
using (IEnumerator<System.Exception> enumerator = task.Exception.InnerExceptions.GetEnumerator())
{
if (enumerator.MoveNext())
{
GoogleSignIn.SignInException error = (GoogleSignIn.SignInException)enumerator.Current;
bcreturn.GetComponent<Text>().text = "Task Exception Error: " + error.Status + " " + error.Message;
}
else
{
bcreturn.GetComponent<Text>().text = "Task Unexpected Exception" + task.Exception;
}
}
}
else if (task.IsCanceled)
{
bcreturn.GetComponent<Text>().text = "Canceled";
}
else
{
//serverAuthCode = task.Result.AuthCode;
googleEmail = task.Result.Email;
idToken = task.Result.IdToken;
bcreturn.GetComponent<Text>().text = "Logged into google! \n Email: " + googleEmail + " \n IdToken: " + idToken;
channelid.GetComponent<InputField>().text = "[" + googleEmail + "]" + idToken;
}
}
Terminez le code des callbacks restants dans votre script. Consultez le code complet de notre exemple de projet Google Authentication sur GitHub pour référence. ( Notez que
GoogleSignInConfiguration
requiert queWebClientId
représente un utilisateur pour appeler Google SignIn ; nous devrons configurer cela dans notre code après la création de l'élémentclient credential
parGoogle Cloud Console
. )Cliquez maintenant sur l'onglet
Build Settings
dans le menu UnityFile
et basculez vers la plateformeAndroid
. Créez ensuite un keystoreKeystore Manager
et enregistrez-le localement si vous n'en avez pas.
Configurez également votre application
package name
viaPlayer Settings
.Nous pouvons maintenant passer à l’étape suivante pour créer un projet Google.
Étape 2: Créez un projet Google et configurez-le avec les informations d'identification du client OAuth 2.0
Avant de créer un projet, générons une empreinte digitale
SHA1
en utilisant le fichierkeystore
etpackage name
que nous avons créé à l'étape précédente via le terminal local en utilisant la commande Java JDK:keytool -exportcert -alias your-keystore-alia -keystore path-to-your-keystore-file -list -v
. ( Si vous ne définissez pas cette commande globalement, pour utiliserkeytool
, vous devrez peut-être accéder à votre dossier personnel Java JDK)Ensuite, au lieu d'aller sur Google Cloud Console pour créer un projet et ajouter manuellement les informations d'identification du client d'authentification, nous pouvons accéder à la page Android-developer
Google Sign In
et créer un projet à partir de là. ( en utilisant cela, un projet Google et un ID client Android pour OAuth 2.0 créés en un seul clic ), collez lepackage name
de votre application Android et votre empreinte digitaleSHA1
en conséquence lorsque vous y êtes invité et créez le projet.Maintenant, ouvrez Google Cloud Platform, vous devriez pouvoir voir les ID de projet et de client OAuth 2.0 créés pour vous.
Maintenant que nous avons terminé la configuration de notre projet depuis GCP, notez l'ID client, ses identifiants Web secrets et le
project number
, nous en aurons également besoin pour la configuration dans la console brainCloud. (Notez que le numéro de projet est préfixé à l'ID client.)
Étape 3: Configurer les informations d’identification du client Google sur brainCloud
Ouvrez votre application brainCloud correspondante à partir du portail de développement brainCloud, accédez à la page Conception | Informations sur l'application principale .
Cliquez sur Google sous Configurer les plates-formes et collez vos informations d'identification
Client ID
et celles de votresecret
de client Web dans les champs de configuration Google respectivement.
Assurez-vous que la plateforme
Google Android
est sélectionnée dans la page Conception | Informations sur l'application principale | Plateformes .Maintenant que nous avons terminé les paramètres de brainCloud, passons à l’étape suivante pour configurer l’ID client de votre code dans Unity.
Étape 4: Configuration finale de l'application Android dans Unity et création d'une application de test
Référencer cet ID client en tant que configuration Google SignIn dans votre code.
configuration = nouvelle configuration GoogleSignIn
{
WebClientId = "998140262691-eot4ico1t3qtb35ea1prbt9ilinekpnr.apps.googleusercontent.com",
RequestEmail = true,
RequestIdToken = true,
RequestAuthCode = true
};Accédez à l’écran
Build Settings
et créez l’APK pour votre appareil de test.
Étape 5: Test