SITUATION: Voila je suis entrain de construire un forum grâce au framework Symfony 2. Sur le forum, j'ai mis en place un système de connexion par la base de donnée .
QUESTION: J'aimerais remplacer le "système de connexion par la base de donnée" par une connexion via steam.
ETAT: Après pas mal de recherches je bloc toujours .... Je suis tomber sur pleins de truc comme par exemple : OpenId Mais je n'arrive pas à trouver quelque chose de personnalisable et de simple à mettre en place
Je ne demande pas quelque chose de tout fais sans le comprendre, mais si quelqu'un a déjà mis ce genre de système en place, un petit coup de pouce ne serais pas de refus.
je n'ai jamais mis un tel système en place et je n'utilise pas Symfony donc mon aide sera limitée, cependant tu pourrais regarder ce qui est proposé ici ça semble correspondre à ce que tu cherches.
PS: J'ai l'impression que l'adaptation sur symfony 2 n'est pas encore réellement faîte pour cette lib :
"To Do
Add PHPUnit tests
Integration with other frameworks: CodeIgniter, Symfony 2"
Je vous souhaite à toutes et à tous une MAGNIFIQUE année 2016.
OC vu que c'est mon premier post, je me permet de te féliciter pour ton site, c'est juste une "dinguerie", entre le nombre de cours que j'ai déjà parcouru et le nombre de cours qui s'impatiente de me rencontrer. Tu me fais aimer apprendre !
Comment garder les informations de connexion steam sur toutes les pages de mon site ? (Et durant un certain temps)
ETAT
Actuellement, lorsque je me connecte, je suis rediriger vers une page de mon site ( en l’occurrence la page d'accueil) avec comme informations reçus par la connexion : l'id steam. Mais dès que je recharge ou change de page il ne garde pas cette information.....
En php procédural, j'aurais crée une variable de session qui contiendrait l'id steam comme identifiant.
j'ai vu qu'il y avait un systeme de session sur symfony mais cela ne me semble pas être la solution à mon problème.
Je viens de passer la journée dessus sans succes, alors un petit coup de pouce m'aiderais pas mal
Bah pourquoi ça ne serait pas la bonne solution ? Tu gardes les informations en session. Moi j'aurais fait :
1- Inscription / Connexion via Steam, Steam tu renvoies des infos alors hop je crée un compte dans ma base avec les informations de Steam (et d'autres informations)
2- Lors de chaque connexion via Steam je vais chercher les informations en base grâce à l'ID Steam puis je stocke tout ça en session.
Développeur Web Freelance. Spécialiste Symfony et Laravel.
Salut ! Merci d'avoir pris le temps de me répondre !
Depuis mon dernier message, j'ai effectivement réussi à le mettre en place via les sessions. Mais cela ne me semble pas être la bonne solution pour plusieurs raisons : 1. Je n'utilise pas le système de sécurité avec le fichier "security.yml", et du coup lorsque je suis connecté à steam via mon site, dans ma toolbar symfony il y a toujours marqué "anonymous". 2. Je rencontre un problème une fois connecté : si je refresh la page juste après la connexion à steam ( donc pour moi : l'accueil ) la valeur de ma session va ce transformer en "NULL"
Je suis personnellement en train de développer un grooos site communautaire et j'ai utilisé HWIOAuthBundle (authentification oAuth utilisée pour Facebook et un forum VBulletin) avec un bridge FOSUserBundle (pour la persistance des utilisateurs dans la base de données), et je vais essayer d'intégrer Ehesp/Steam-Login avec le tout.
Okay, bon pour ceux que ça pourrait intéresser je poste ma solution, qui fonctionne à MERVEIIIIILLE.
Alors, en premier lieu, j'ai importé la classe SteamLogin de Ehesp/Steam-Login, ai dégagé l'implements, et ai passé toutes les fonctions en statique (histoire de pas avoir à faire d'instantiations pour si peu).
Ensuite, j'ai intégré la fonction url à mon Extension twig déjà faite:
use Site\FrontBundle\Utils\SteamLogin;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
...
public function getFunctions()
{
return array(
...,
new \Twig_SimpleFunction('steamLoginLink', array($this, 'renderSteamLoginLink')),
);
}
public function renderSteamLoginLink()
{
return SteamLogin::url($this->router->generate('site_front_steam_login_handle', array(), UrlGeneratorInterface::ABSOLUTE_URL));
}
/**
* @ORM\Column(name="steam_id", type="string", nullable=true)
*/
public $steam_id;
(champs représentant un ID unique pour le système d'authentification courant, voir plus bas pour plus d'informations)
Et pour ce qui est du controller, rien de plus simple (Je rappelle que j'utilise FOSUserBundle, et que mes utilisateurs ne peuvent pas s'authentifier directement depuis un formulaire sur le site) :
(technique basée sur le système d'auth de HWIOAuthBundle, à savoir "je récupère l'user avec un id qui correspond au service d'authentification courant (ici steam donc steam_id), si l'utilisateur n'existe pas, je le créé, le sauvegarde, puis quoi qu'il en soit, l'authentifie, puis le redirige)
{vous noterez que ma classe User a un champs avatar:string que je récupère avec ce système au passage}
+ petit bonus de correction: j'ai eu une erreur en retour de openid me disant que mon returnto ne correspondait pas à mon domaine, je me suis rendu compte que dans la librairie de Ehesp/Steam-Login, une ligne était à éditer dans la fonction url:
Simpa ! Perso je n'utilise pas FOSuserBundle et pour l'instant pas de connexion a FB et autre reseau sociau.
@tomDurand
J'ai repondu a ton MP avec mon autre compte.
J'avais finalement reussi a utiliser l'auth steam mais la recuperation des infos etait fonctionnelle MAIS degeulassement coder je me souviens et j'avais pas trouver d'autre solution...
Mon systeme PARSER les infos de la page de profil steam version XML (grace a l'ID steam) en faisant un tableau de recuperation visant les balises.
genre : <pseudo>PSEUDO</pseudo> etc je crois... en retirant les balise via je sais plus quel fonction php qui peux enlever des caractere d'une variable...
Si meilleur idée pour récupérer toutes les infos steam une fois authentifié je suis toujours preneur !
- Edité par Anonyme 6 mai 2016 à 0:16:27
Symfony2 - Steam authentification
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Développeur Web Freelance. Spécialiste Symfony et Laravel.
Développeur Web Freelance. Spécialiste Symfony et Laravel.