Passer au contenu principal
Toutes les collectionsQuestions générales
Authentification - Google (OpenID)
Authentification - Google (OpenID)

OAuth 2.0, connexion Google

Jason Liang avatar
Écrit par Jason Liang
Mis à jour il y a plus de 2 semaines

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 les server auth codes qui seront transmis à la méthode AuthenticateGoogle de brainCloud dans notre exemple de code. (Notez que certains fichiers sous PlayServiceResolver peuvent être obsolètes; vous devrez probablement installer le plugin unity-jar-resolver depuis les dépôts d'exemples Google pour le mettre à jour PlayServiceResolver. 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épertoire Asset->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 son userId en appelant GetUserId() depuis la fonction de success callback, et obtenir leur email 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 que WebClientId représente un utilisateur pour appeler Google SignIn ; nous devrons configurer cela dans notre code après la création de l'élément client credential par Google Cloud Console. )

  • Cliquez maintenant sur l'onglet Build Settings dans le menu Unity File et basculez vers la plateforme Android. Créez ensuite un keystore Keystore Manager et enregistrez-le localement si vous n'en avez pas.

  • Configurez également votre application package name via Player 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 fichier keystore et package 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 utiliser keytool, 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 le package name de votre application Android et votre empreinte digitale SHA1 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 votre secret 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

  • Installez l'APK créé à l'étape précédente sur votre appareil et testez-le. Il vous sera peut-être demandé d'accorder des autorisations à votre application de test. Accordez-les et continuez.

  • Vérifiez l’utilisateur testeur authentifié à partir de la console brainCloud.

Avez-vous trouvé la réponse à votre question ?