Intégration d'openID à mon site phpboost
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
Reprise du message précédent
Salut,Ok, mais tout de même, si on ne touche pas à la classe Session alors, c'est faisable ou pas? Je pourrais y arriver ou pas?
Je suis bien prêt à prendre le risque, d'autant que je le ferai sur une installation test, donc si ça casse, pas trop grave.
À la limite, si je m'attaque à cette intégration, le projet phpboost ne pourra qu'en bénéficier, n'est-ce pas?

Cependant, ce que j'aimerais savoir : devrais-je voir à modifier cette classe Session d'abord ou pas?
Si je me lance, pouvez-vous me donner du support et m'aider dans ma démarche?
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Je ne sais pas quel est ton niveau en PHP, mais si tu veux vraiment te lancer là-dedans, il faut que tu sois bien à l'aise avec le PHP et que tu aies un courage dingue. Même moi, connaissant pourtant bien PHPBoost, ça me ferait peur de me lancer là-dedans (malheureusement il faudra bien qu'on le fasse un jour).
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
J'ai peur aussi....
Je me débrouille, mais j'aime bien apprendre aussi. De plus, vous êtes là, non?
Édité par DaaX Le 30/09/2010 à 17h57
horn Membre non connecté
-
Modérateur
- Voir le profil du membre horn
- Inscrit le : 31/12/2007
- Site internet
- Groupes :
-
Equipe Historique
Soyez polis, pas de langage SMS et soignez votre orthographe, merci.
CrowkaiT Membre non connecté
-
Modérateur
- Voir le profil du membre CrowkaiT
- Inscrit le : 17/06/2005
- Site internet
- Groupes :
-
Equipe Historique

Franchement je viens d'ouvrir la classe Session et la classe User, on peut pas continuer avec ça.. C'est pas possible le code qu'il y a là dedans.. C'est la maison des cauchemards (et c'est moi qui l'ai codé). Faudrait peut-être prendre le temps de faire ça avant la 3.1
Pas de support par messages privés! Pensez à mettre vos messages en réglé en cliquant sur le bouton réglé!
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
J'ai jeté rapidement un coup d'oeil et en effet, y a du boulot....
Il serait opportun en effet de s'attaquer à cet élément somme toute essentiel au CMS.
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
Avant que je m'attaque à cette tâche et que je me mette le nez à fond dans le cambouis, quelqu'un pourrait me fournir un diagnostic assez complet des classes session et user? Qu'est-ce qui cloche?
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
Je m'attaque à la classe Session. Dans la foulée, j'ai quelques interrogations par rapport à certaines fonctions de cette classe.
1. il y a une fonction check($session_script_title). Cette fonction n'est pas appelé dans la classe elle même et je n'ai pas trouvé où elle était appelée.
2. la fonction _autoconnect($session_script,$session_script_get,$Session_script_title) est appelée par qui? Je sais que c'est elle qui est liée à l'autoconnexion, mais je ne vois pas où et par qui elle est appelée.
3. à quoi sert la fonction get_token(). En fait, qu'est-ce que le token que l'on retrouve dans la bdd DB_TABLE_SESSIONS?
Merci de répondre à mes interrogations.
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
2. Si tu es déconnecté, tu as peut-être coché la case "se souvenir de moi" qui stocke ton login et mot de passe dans des cookies. Du coup cette méthode regarde si tu n'aurais pas ces informations-là à disposition.
3. C'est le jeton de protection contre les attaques CSRF. Je t'invite à regarder Wikipédia pour comprendre de quoi il s'agit, et si tu as des questions tu peux nous les poser. Par contre, tu n'as pas à toucher cela, tu dois modifier seulement l'authentification et pas la création d'une session (le jeton est généré à ce moment-là).
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
ben.popeye :
1. De mémoire elle sert à dire si tu es identifié ou pas. Elle doit être appelée dans kernel/begin.php
Je te confirme qu'elle n'est pas appelée de begin.php.
Après plusieurs recherches, j'ai enfin trouvé où elle était appelée : header.php.
Il serait intéressant de la renommer afin que le nom de la fonction soit plus évocateur.
Citation :
2. Si tu es déconnecté, tu as peut-être coché la case "se souvenir de moi" qui stocke ton login et mot de passe dans des cookies. Du coup cette méthode regarde si tu n'aurais pas ces informations-là à disposition.
Ça je comprends très bien.
Je viens de trouver à l'instant qu'elle est justement appelée dans la fonction check(). :P
Citation :
3. C'est le jeton de protection contre les attaques CSRF. Je t'invite à regarder Wikipédia pour comprendre de quoi il s'agit, et si tu as des questions tu peux nous les poser. Par contre, tu n'as pas à toucher cela, tu dois modifier seulement l'authentification et pas la création d'une session (le jeton est généré à ce moment-là).
Ce n'est pas mon intention de toucher à ça, je veux juste comprendre.
Je ne toucherai pas non plus à la création de session, sinon l'améliorer s'il y a lieu.Merci ben pour ces réponses. J'aurai certainement d'autres questions.
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
Pour ma compréhension :
- la fonction act() -> pour activer la session?
- la fonction start() -> pour démarrer la session? Il me semble que c'est là que la session est créée non?
- la fonction load() -> on charge les infos de l'utilisateur
- fonction check() -> on vérifie la persistance de la session, sa validité?
Ces 2 fonctions ne sont appelées de nulle part??? À quoi servent-elles?
- fonction set_module_parameters() et get_module_parameters()
- fonction end() -> pour terminer la session. Pourrait être renommée.
- fonction _get_id() -> pour obtenir et vérifier qu'il y a bien un SID?
- fonction _autoconnect() -> vérifie si l'option autologin est cochée. Ce que je trouve bizarre, pourquoi elle est appelée seulement après que load() et act() soit appelée (elles sont appelées dans begin.php et _autoconnect est appelée dans header.php via la fonction check())?
- fonction garbage_collector() -> on nettoie les sessions fermés ou périmées
Bref, en somme,
L'authentification comprend :
- act(), start(), _autoconnect()
La persistance de la session :
- check(), etc.
L'accès aux données des sessions :
- load()
Ce que je me pose comme question (encore...), pourquoi begin.php appelle d'abord load() avant act()? On charge les données de l'utilisateur avant même de l'authentifier?
Édité par DaaX Le 15/10/2010 à 22h39
ben.popeye Membre non connecté
-
Modérateur
- Voir le profil du membre ben.popeye
- Inscrit le : 04/08/2005
- Site internet
- Groupes :
-
Equipe Historique
Un problème, une question ? Cherchez dans la FAQ ou la documentation. Si vous ne trouvez pas la réponse, demandez du support sur le forum.
Bjarne Stroustrup, inventeur du C++ :"There are two ways to write error-free programs; only the third works."
alain91 Membre non connecté
Booster Missile
-
Booster Missile
- Voir le profil du membre alain91
- Inscrit le : 26/09/2010
- Groupes :
DaaX :
Ces 2 fonctions ne sont appelées de nulle part??? À quoi servent-elles?
- fonction set_module_parameters() et get_module_parameters()
- Je que je me pose comme question (encore...), pourquoi begin.php appelle d'abord load() avant act()? On charge les données de l'utilisateur avant même de l'authentifier?
Ces 2 fonctions ne sont appelées de nulle part??? À quoi servent-elles?
- fonction set_module_parameters() et get_module_parameters()
- Je que je me pose comme question (encore...), pourquoi begin.php appelle d'abord load() avant act()? On charge les données de l'utilisateur avant même de l'authentifier?
J'ai eu l'occasion par la passé de parcourir le code de Session et faire apporter quelques précisions.
Les deux fonctions set_module_parameters et get_module_parameters sont destinées au Dévs de module. Il doit y avoir des posts à ce sujet dans le forum pour le module weather. Car il y a avait des pistes d'amélioration. Typiquement, cela permet à un module de conserver des données dans la session de l'utilisateur. Pour weather (météo) l'idée était de conserver la ville de l'utilisateur quelqu'il soit.
Personnellement, je considère que load est une méthode de chargement de l'instance et ensuite il faut utiliser des méthodes d"action.
Édité par alain91 Le 16/10/2010 à 09h37
Le pessimisme est d'humeur. L'optimisme est de volonté (Philosophe Alain).
DaaX Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre DaaX
- Inscrit le : 08/09/2009
- Site internet
alain91 :
J'ai eu l'occasion par la passé de parcourir le code de Session et faire apporter quelques précisions.
Les deux fonctions set_module_parameters et get_module_parameters sont destinées au Dévs de module. Il doit y avoir des posts à ce sujet dans le forum pour le module weather. Car il y a avait des pistes d'amélioration. Typiquement, cela permet à un module de conserver des données dans la session de l'utilisateur. Pour weather (météo) l'idée était de conserver la ville de l'utilisateur quelqu'il soit.
J'ai eu l'occasion par la passé de parcourir le code de Session et faire apporter quelques précisions.
Les deux fonctions set_module_parameters et get_module_parameters sont destinées au Dévs de module. Il doit y avoir des posts à ce sujet dans le forum pour le module weather. Car il y a avait des pistes d'amélioration. Typiquement, cela permet à un module de conserver des données dans la session de l'utilisateur. Pour weather (météo) l'idée était de conserver la ville de l'utilisateur quelqu'il soit.
Ah oki, c'est bon à savoir.
Citation :
Personnellement, je considère que load est une méthode de chargement de l'instance et ensuite il faut utiliser des méthodes d"action.
Je ne crois pas. La description dit :
/*
* Get informations from the user and set it for his session.
*/
CrowkaiT Membre non connecté
-
Modérateur
- Voir le profil du membre CrowkaiT
- Inscrit le : 17/06/2005
- Site internet
- Groupes :
-
Equipe Historique
DaaX :
Ce que je me pose comme question (encore...), pourquoi begin.php appelle d'abord load() avant act()? On charge les données de l'utilisateur avant même de l'authentifier?
Il faut d'abord aller chercher les informations dans le cookie du client (load). Ensuite on essaie de mettre à jour la session du client dans la base de données afin de valider qu'elle est correcte (act).
Pas de support par messages privés! Pensez à mettre vos messages en réglé en cliquant sur le bouton réglé!
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie