Pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter, inscrivez-vous gratuitement !

 

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    janvier 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2017
    Messages : 7
    Points : 3
    Points
    3

    Par défaut Aide pour créer un module "Mot de passe oublier" et utilisation d'API sur site (explication) ou exemple

    Bonjour tout le monde,

    Je souhaiterai que vous m'indiquiez comment créer un moudle de "Mot de Passe Oublier"

    et aussi comment utiliser ou faire appel a une API (GoogleFit) avec mkframework.

    Merci d'avance de votre aide.

  2. #2
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2006
    Messages : 5 128
    Points : 19 197
    Points
    19 197
    Billets dans le blog
    17

    Par défaut

    IL faut
    • creer un module d'authentification
    • ajouter un champ email à chaque utilisateur
    • ajouter un champ "doitChangerMotDePasse"
    • ajouter une page de modification de mot de passe
    • ajouter une page mot de passe oublié


    Dans la page de mot de passe oublié, ajouter un champ pour saisir l'email, à la soumission, faites une recherche en base pour retrouver l'utilisateur avec l'email

    Si trouvé,
    • generer un mot de passe aléatoire
    • mettre à jour en base le mot de passe de l'utilisateur (hashé)
    • mettre a jour le champ "doitChangerMotDePasse" à 1
    • envoyer email avec ce mot de passe généré



    Dans module d'authentification, si "doitChangerMotDePasse" est à 1, il faut rediriger sur page de modif de mot de passe
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    janvier 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2017
    Messages : 7
    Points : 3
    Points
    3

    Par défaut

    A d'accord merci beaucoup

    Et pour l'API comment je dois faire, je souhaite prendre l'API GoogleFIT.

  4. #4
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2006
    Messages : 5 128
    Points : 19 197
    Points
    19 197
    Billets dans le blog
    17

    Par défaut

    Pour l'API google fit, je vois qu'il y a une API accessible en REST, je vais voir pour ecrire un petit tuto pour acceder à ce genre d'api REST en utilisant oAuth
    il viendra completer celui-ci
    http://mkframework.com/faq.html#plugin_restClient
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    janvier 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2017
    Messages : 7
    Points : 3
    Points
    3

    Par défaut

    J'attend donc alors ton tutoriel car j'en ai besoin maintenant pour un site.

  6. #6
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2006
    Messages : 5 128
    Points : 19 197
    Points
    19 197
    Billets dans le blog
    17

    Par défaut

    La mise en place de oAuth est assez complexe, idem pour faire un plugin pour se connecter à google fit

    en cherchant ce soir j'ai vu que Google proposait une bibliothèque d'accès à ses services "google client"

    Voici ce que j'ai fait poru integrer au projet mkframework

    creation d'un repetoire lib

    telechargement https://github.com/google/google-api-php-client

    desarchivage dans le repetoire lib du projet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ├── conf
    ├── data
    ├── index.php
    ├── layout
    ├── lib
    │   └── google-api-php-client-master
    ├── model
    ├── module
    ├── myClasses
    ├── plugin
    └── public
    ensuite dans le repertoire google-api-php-client-master, via composer j'ai installer les dependancees (composer https://getcomposer.org/download/)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    cd lib/google-api-php-client-master
    composer install
    Ensuite pour pouvoir appeler la librairie client Google, dans le ficheir public/index.php

    on integre le fichier de chargement autoload du client Google
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    require_once __DIR__.'/../lib/google-api-php-client-master/vendor/autoload.php';
     
     
    $oRoot=new _root();

    J'ai ensuite suivi le tutoriel de google pour obtenir un fichier json pour oAuth2
    ici: https://developers.google.com/fit/rest/v1/get-started

    je l'ai copié dans le repertoire data/json/client_id.json'


    Enfin le code ici pour lister les dossiers dans google drive

    module/default/main.php

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
    <?php
     
    class module_default extends abstract_module{
     
    	public function before(){
     
    		session_start();
     
    		define('ROOTURL','http://localhost/mkframeworkPackage-1.0.7/Projects/testGoogleFit/public/');
     
    		$this->oLayout=new _layout('template1');
    	}
     
    	public function _callback(){
    		$client = new Google_Client();
    		$client->setAuthConfig(_root::getConfigVar('path.data').'/json/client_id.json');
    		$client->setRedirectUri(ROOTURL._root::getLink('default::callback') );
    		$client->addScope(Google_Service_Books::BOOKS);
     
    		if (! isset($_GET['code'])) {
    			$auth_url = $client->createAuthUrl();
    			header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
    		} else {
    			$client->authenticate($_GET['code']);
    			$_SESSION['access_token'] = $client->getAccessToken();
    			$redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/';
    			header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
    		}
    	}
     
    	public function _index(){
     
    		$client = new Google_Client();
    		$client->setAuthConfig(_root::getConfigVar('path.data').'/json/client_id.json');
     
     
    		$client->addScope(Google_Service_Books::BOOKS);
     
    		if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
    			$client->setAccessToken($_SESSION['access_token']);
     
    			$service = new Google_Service_Books($client);
    			$optParams = array('filter' => 'free-ebooks');
    			$results = $service->volumes->listVolumes('Henry David Thoreau', $optParams);
     
    			foreach ($results as $item) {
    			  echo $item['volumeInfo']['title'], "<br /> \n";
    			}exit;
     
    			$drive = new Google_Service_Drive($client);
    			$files = $drive->files->listFiles(array())->getItems();
    			echo json_encode($files);
    		} else {
    			$redirect_uri = ROOTURL._root::getLink('default::callback');
    			header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
    		}
     
    		exit;
    	}
     
    	public function after(){
    		$this->oLayout->show();
    	}
    }
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    janvier 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2017
    Messages : 7
    Points : 3
    Points
    3

    Par défaut

    J'ai cette erreur finalement : Fatal error: Uncaught Error: Class 'Google_Client' not found in C:\xampp\htdocs\mkframework1\Projects\CoachSportive\module\default\main.php:36 Stack trace: #0 C:\xampp\htdocs\lib\framework\class_root.php(264): module_default->_index() #1 C:\xampp\htdocs\mkframework1\Projects\CoachSportive\public\index.php(47): _root->run() #2 {main} thrown in C:\xampp\htdocs\mkframework1\Projects\CoachSportive\module\default\main.php on line 36

    Voici mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    class module_default extends abstract_module{
     
    	public function before(){
     
    		if(!isset($_SESSION)) 
        { 
            session_start(); 
        } 
     
    		define('ROOTURL','http://localhost/mkframework1/Projects/CoachSportive/public/');
     
    		$this->oLayout=new _layout('template1');
    	}
     
    	public function _callback(){
    		$client = new Google_Client();
    		$client->setAuthConfig(_root::getConfigVar('path.data').'/json/client_id.json');
    		$client->setRedirectUri(ROOTURL._root::getLink('default::callback') );
    		$client->addScope(Google_Service_Drive::DRIVE_METADATA_READONLY);
     
    		if (! isset($_GET['code'])) {
    			$auth_url = $client->createAuthUrl();
    			header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL));
    		} else {
    			$client->authenticate($_GET['code']);
    			$_SESSION['access_token'] = $client->getAccessToken();
    			$redirect_uri = 'http://' . $_SERVER['HTTP_HOST'] . '/';
    			header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
    		}
    	}
     
    	public function _index(){
     
    		$client = new Google_Client();
    		//$client->setApplicationName("test");
    		//$client->setDeveloperKey("AIzaSyAznidmlPyqobLwWpqSf2XaxIJEtI7lP4w");
    		$client->setAuthConfig(_root::getConfigVar('path.data').'/json/client_id.json');
     
     
    		$client->addScope(Google_Service_Drive::DRIVE_METADATA_READONLY);
     
    		if (isset($_SESSION['access_token']) && $_SESSION['access_token']) {
    			$client->setAccessToken($_SESSION['access_token']);
    			$drive = new Google_Service_Drive($client);
    			$files = $drive->files->listFiles(array())->getItems();
    			echo json_encode($files);
    		} else {
    			$redirect_uri = ROOTURL._root::getLink('default::callback');
    			header('Location: ' . filter_var($redirect_uri, FILTER_SANITIZE_URL));
    		}
     
    		exit;
    	}
     
    	public function after(){
    		$this->oLayout->show();
    	}
    }

  8. #8
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2004
    Messages
    1 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : mai 2004
    Messages : 1 378
    Points : 773
    Points
    773

    Par défaut

    Citation Envoyé par imikado Voir le message
    IL faut
    • creer un module d'authentification
    • ajouter un champ email à chaque utilisateur
    • ajouter un champ "doitChangerMotDePasse"
    • ajouter une page de modification de mot de passe
    • ajouter une page mot de passe oublié


    Dans la page de mot de passe oublié, ajouter un champ pour saisir l'email, à la soumission, faites une recherche en base pour retrouver l'utilisateur avec l'email

    Si trouvé,
    • generer un mot de passe aléatoire
    • mettre à jour en base le mot de passe de l'utilisateur (hashé)
    • mettre a jour le champ "doitChangerMotDePasse" à 1
    • envoyer email avec ce mot de passe généré



    Dans module d'authentification, si "doitChangerMotDePasse" est à 1, il faut rediriger sur page de modif de mot de passe
    Bonjour Imikado

    Je voudrais pas interférer de manière intrusive mais je pense que une tuto nous aiderai tous sur ce sujet.

    Merci

  9. #9
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2006
    Messages : 5 128
    Points : 19 197
    Points
    19 197
    Billets dans le blog
    17

    Par défaut

    c'est noté, je vais essayer d'en ecrire un cette semaine
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  10. #10
    Rédacteur
    Avatar de imikado
    Homme Profil pro
    Ingénieur développement
    Inscrit en
    décembre 2006
    Messages
    5 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement
    Secteur : Finance

    Informations forums :
    Inscription : décembre 2006
    Messages : 5 128
    Points : 19 197
    Points
    19 197
    Billets dans le blog
    17
    Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/ (hebergé sur developpez.com)
    Mes cours/tutoriaux

  11. #11
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    mai 2004
    Messages
    1 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : mai 2004
    Messages : 1 378
    Points : 773
    Points
    773

    Par défaut

    Bonjour Imikado

    Etant absent depuis la semaine passé c'est ce matin que j'ai vu le tutoriel

    Merci beaucoup

Discussions similaires

  1. Aide pour créer mon site, aidez moi.
    Par ganon551 dans le forum Mon site
    Réponses: 24
    Dernier message: 30/06/2006, 19h45
  2. aide pour créer une faq sur inno setup
    Par fsx999 dans le forum Langage
    Réponses: 3
    Dernier message: 12/06/2006, 20h16
  3. besoin d'aide pour créer un uml
    Par bob75018 dans le forum UML
    Réponses: 9
    Dernier message: 11/03/2006, 12h18
  4. aide pour créer un jeu
    Par cstefany dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/10/2005, 03h51
  5. [FLASH MX2004] Aide pour créer une animation
    Par SnakeTales dans le forum Flash
    Réponses: 5
    Dernier message: 04/08/2005, 10h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo