• 0

Comment intégrer un login via compte Steam sur son site ou son forum ?


BenHur

Question

Bonjour à tous,

 

Un petit post pour partager sur une nouveauté introduite sur le site Vossey.com et le forum : le login via Steam.  En effet, ceci est possible grâce à la technologie OpenID. (http://fr.wikipedia.org/wiki/OpenID). Utiliser cette fonctionnalité ne vous coutera rien et pourra aider vos visiteurs à s'inscrire et à plus utiliser vos services.

 

Attention : Inconvénient avec le login ID via Steam : on ne récupère pas l'adresse Email mais une version 64 bits de l'id de l'user.

 

Bon à savoir : pour wordpress et CMS que vous pouvez utiliser, il peut exister des modules qui s'installent en quelques clics.

 

N'hésitez pas à partager vos expériences et à demander de l'aide !

 

 

Lien vers le commentaire
Partager sur d’autres sites

7 réponses à cette question

Messages recommandés

  • 0

Pour le site Vossey.com : nous avons utilisé la bibliothèque LightOpenID : quelques lignes permettent ensuite la connexion :

    $openid = new LightOpenID('www.votresite.com');
            if(!$openid->mode) {
                if(isset($_GET['login'])) {
                    $openid->identity = 'https://steamcommunity.com/openid';
                    $openid->returnUrl = "http://www.urldevotrepagede retour";
                    header('Location: ' . $openid->authUrl());

                    exit();
                }
            } elseif($openid->mode == 'cancel') {
                echo 'User has canceled authentication!';
            } else {

             if($openid->validate())
             {

               // Votre traitement

             }

 

 

Pour le forum (produit Invision) : le module suivant que nous avons adapté à notre base de données :

http://community.invisionpower.com/files/file/5393-sign-in-through-steam/

Lien vers le commentaire
Partager sur d’autres sites

  • 0

Et qu'est-ce que ça donne avec un membre qui se connecte avec son id steam, mais qui a relié son compte steam avec son compte vossey ?

Concrètement, c'est une table qui fait le lien entre les id du site et l'id Steam.

Une fois loggé via Steam, une vérification est faite pour savoir si le compte est bien connu chez nous (ou pas).

 

Cette vérification est réalisée dans le validate().

J'espère avoir répondu à ta question sinon n'hésites pas

Lien vers le commentaire
Partager sur d’autres sites

  • 0

C'est pas mal ça.

Donc si je comprend bien, si un visiteur se connecte avec son steam id ici, une vérification est fait pour savoir si un compte vossey y est lié ou non.

Et dans le cas d'un membre qui se connecte avec son compte vossey, une vérification similaire est faite ?

Lien vers le commentaire
Partager sur d’autres sites

  • 0

C'est hyper simple, mais faut savoir quoi vouloir.

 

ex:

 

Ta ton site avec un bouton, dans le Steam SDK pour le OpenID Login tu as un code qui te permet de générer l'URL avec le lien de retour sur ton site (tu peu définir une page précise si ton code est limité)

 

Alors l'user click sur ce lien,s a va l'ammener a l'authentification avec Steam, si il est déjà identifier il devra confirmé qui s'identifie à ton site.

 

L'user revient dont sur ton site, un code unique te sera fournis, tu le valide avec Steam avec une commande du SDK.

 

Alors à ce moment tu n'a que très peu de détails; SteamID (64), son personaname et realname (et des infos géographique défini, ville, pays....)

 

Alors si tu as besoin comme identification, je te suggère ceci, une belle table avec les infos que tu veux. Alors la tu met le SteamID dedans (la seul chose qui ne bouge jamais dans les données), et tu fait un filtre qui détermine si il existe dans la base, sinon tu l'ajoute.

 

Pour avoir l'état du VAC, privacy, échanges, inventaires, groupes etc.... faut passer par le ... API de Steam et les sortie XML/JSon. La ont tombe dans plus complexe.

 

C'est plus simple d'intégrer l'identification STEAM que celle de Facebook, Te suffit de PHP 4 (PHP5 c'est mieux).

Je te suggère également d'obtenir une clé API de STEAM, cette clé te permet de pousser la réception des infos depuis l'API relativement complet de STEAM.

 

Code du SDK Login (genurl et validate) http://forums.steampowered.com/forums/showthread.php?t=1430511

 

Ce code te donne que le OK, il récupère aucune info, pour sa il te faut d'autres lignes, en utilisant le SteamID du requérant.

 

Lors du retour de l'utilisateur sur ton site (après l'identification) confirme le, et capture depuis les infos reçu en _GET le steamid (tu as d'autres infos qui te permette de détecter si il est en mode de retour). De la fait un appel sur le profile de l'utilisateur avec ?xml=1, pour une sortie en XML au lieu de HTML. avec le loader XML de PHP, transforme le en Array (ou object) pour l'utiliser le tout plus facilement.

 

Si tu as besoin d'aide, ajoute moi sur STEAM :) Je travail sur la version 7 de cadeau STEAM et j'améliore justement cette facette de mon code.

 

ET je rassure, STEAM ne donne pas les infos suivantes; email, password, identifiant

Lien vers le commentaire
Partager sur d’autres sites

  • 0
Le 23/02/2014 à 12:04, BenHur a dit :

    $openid = new LightOpenID('www.votresite.com');
            if(!$openid->mode) {
                if(isset($_GET['login'])) {
                    $openid->identity = 'https://steamcommunity.com/openid';
                    $openid->returnUrl = "http://www.urldevotrepagede retour";
                    header('Location: ' . $openid->authUrl());

                    exit();
                }
            } elseif($openid->mode == 'cancel') {
                echo 'User has canceled authentication!';
            } else {

             if($openid->validate())
             {

               // Votre traitement

             }

 

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à cette question…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

Chargement