IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

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

MkFramework Discussion :

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


Sujet :

MkFramework

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2017
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    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
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    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 : 26
    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
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    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 : 26
    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
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    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 : 26
    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 éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 676
    Points : 953
    Points
    953
    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
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    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
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    5 239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Val de Marne (Île de France)

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

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 239
    Points : 19 100
    Points
    19 100
    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 éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 676
    Points : 953
    Points
    953
    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