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

Langage PHP Discussion :

PHP et création de token pour la communication avec une application mobile


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    410
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 410
    Points : 90
    Points
    90
    Par défaut PHP et création de token pour la communication avec une application mobile
    Bonjour,

    Je travaille actuellement sur une application mobile qui appelle en api des scripts php utilisant MySQL pour la gestion des données. Je cherche à sécuriser les communications entre mon application mobile et mes scripts php présent sur le serveur. Côté application mobile, cela parle beaucoup de JWT mais il est nécessaire que PHP génère un token et c'est là que je bloque. Comment générer un token avec php ?

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 244
    Points
    20 244
    Par défaut
    Soit tu te paluche la RFC correspondante pour tout faire toi même (bon courage).
    Soit tu utilises une librairie. Pour PHP une des plus utilisé est surement https://github.com/firebase/php-jwt

  3. #3
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    410
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 410
    Points : 90
    Points
    90
    Par défaut
    Pourquoi c'est marqué firebase dedans ??? Je ne veux pas utiliser firebase.

    Et d'ailleurs est-ce que quelqu'un peut m'expliquer le fonctionnement d'un système de token généré par un serveur.

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 244
    Points
    20 244
    Par défaut
    Citation Envoyé par pas30 Voir le message
    Pourquoi c'est marqué firebase dedans ??? Je ne veux pas utiliser firebase.
    Il est pas question d'utiliser firebase , c'est juste que la lib est faites par google qui gère firebase.

  5. #5
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    410
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 410
    Points : 90
    Points
    90
    Par défaut
    Ah ok Tu l'as déjà utilisé cette librairie php-jwt ??? C'est très sécurisé ?

    J'ai essayé de comprendre autant que possible comment marche le système de jeton. Voila ce que j'en ai compris :

    l'utilisateur se loggue sur l'appli à ce moment là le serveur créé un token pour l'utilisateur et va l'envoyer à l'appli qui va elle le stocker (avec flutter_secure_storage pour ma part).

    A chaque requête http envoyé je passe dans le header de la requête le token stocké sur le mobile et je l'envoie donc à mon script php qui lui va analyser que le token correspond bien à un token délivré et qu'il est bien rattaché à l'utilisateur correspondant.

    Voila je ne suis pas sûr que ma compréhension soit la bonne. En tout cas pour l'instant je trouve le développement d'appli mobile avec api passionnant même si assez complexe quand on ne vient pas du monde du développement mobile.

  6. #6
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 244
    Points
    20 244
    Par défaut
    Oui je l'utilise sur plusieurs site/API.

    Ta compréhension des token jwt est la bonne.
    Pour rendre la chose sécurisé il faut donné des durée de vie assez faible aux tokens (de mémoire la préco est de 15 minutes). De fait , si quelqu'un arrive à intercepter un token il ne sera valable que peu de temps.

    Si ton applicatif à besoin de rester connecté longtemps , il faudra mettre en place un système de renouvellement de token (par ex : le serveur renvoi un nouveau token via un header spécial avant que l'actuel périme).

    L'avantage de jwt c'est que c'est un standard adopté par beaucoup et probablement plus sécurisé qu'un truc fait soit même.

  7. #7
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    410
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 410
    Points : 90
    Points
    90
    Par défaut
    Mettons qu'un token ne soit valable QUE 15 minutes, que va-t-il se passer si l'utilisateur fait une requete http avec un token expiré ??? J'avais prévu de générer un nouveau token à chaque utilisation de l'application donc il se connecte je génère un nouveau token

  8. #8
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 244
    Points
    20 244
    Par défaut
    Il se passe ce que tu veux bien qu'il se passe.
    Tu recois le token tu le vérifie , à toi ensuite de faire ce que tu veux en fonction du résultat

  9. #9
    Membre régulier
    Inscrit en
    Décembre 2006
    Messages
    410
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 410
    Points : 90
    Points
    90
    Par défaut
    Si le token est bon mais expiré ? On en regénère un nouveau et on le renvoie à l'application ? On renouvelle donc simplement le token ?

  10. #10
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 692
    Points : 20 244
    Points
    20 244
    Par défaut
    La logique veux que si le token est invalide (quelque soit la raison) on refuse la requête (HTTP 403).
    Si renouvellement il doit y'avoir il doit se faire pendant la période de validité avant l'expiration.

    CE qui peut être fait coté client e nrevanche c'est de géré la problématique. A partir du moment ou tu reçois un 403 , tu ne dis rien à l'utilisateur , tu essai de te reconnecter et d'obtenir un nouveau token et tu rejoue la requête qui à échouée. De la sorte tu es repartit pour 15 min.
    Si cette procédure échoue , alors seulement on déconnecte le client et on informe le l'utilisateur qu'il faut se reconnecter.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. communication avec une application externe
    Par Thmvl dans le forum Général Java
    Réponses: 1
    Dernier message: 03/06/2017, 18h22
  2. [Android] Communication avec une application tierce
    Par S.Jihad dans le forum Android
    Réponses: 2
    Dernier message: 17/05/2011, 16h31
  3. Communication avec une application .Net
    Par koyot3 dans le forum Langage
    Réponses: 1
    Dernier message: 18/04/2011, 11h57
  4. Communication avec une application externe
    Par Lethal dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 27/02/2007, 19h30
  5. [PHP-JS] besoin d'aide pour menu déroulant avec lien
    Par Damarus dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2005, 19h43

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