J'ai un projet qui comprend une application web, une application mobile (Ionic 3) et un module API REST (sur HTTPS). Ma principale préoccupation est de mettre en œuvre une connexion sécurisée et la communication entre eux. Ci-dessous je détaille la solution que je choisis et je demande si elle est correcte et sécurisée.Comment sécuriser la communication entre l'application Ionic 3 et l'API personnalisée REST php?
Étapes à suivre:
lors de la connexion dans l'application serveur retourne un JWT - Accès Token
quand je l'appelle une fonction de l'API (sauf connexion) Je vais envoyer les paramètres suivants :
- à l'intérieur de la tête: JWT AccesToken (stocké dans le stockage local)
- à l'intérieur du corps: tout autre param nécess ary pour appeler les fonctions de l'API
Dans chaque fonction de l'API REST, avant l'exécution, je vérifie si le jeton Access est valide.
jeton de validation:
a) si le jeton d'accès est valide, je continue à exécuter la fonction et retourner une valeur à l'application mobile
b) si le jeton d'accès est des moyens valides I 2 ont des sources d'erreur possibles:
- b1) l'intégrité jeton d'accès est compromis -> la réponse retournée redirigent l'utilisateur de se connecter (cette façon, il n'a pas accès plus à l'application)
- b2) le jeton d'accès a expiré -> Je crée un nouveau jeton d'accès avec la même charge utile mais avec une nouvelle validité. En même temps que je crée le nouveau jeton d'accès, je vérifie également le IdClient (IdClient est généré à partir de la charge utile Access Token) dans DB (si est actif, si a les mêmes droits pour accéder à l'API ...). Après cela, j'envoie ce nouveau jeton d'accès JWT à l'application mobile pour être utilisé et stocké.
De cette façon, je crois que je ne dois pas utiliser un jeton Refresh, même si l'accès Token je dispose d'une période de vie limitée
Est-ce correct et sécurisé ou suis-je manque quelque chose?
Merci!
Je choisis de ne pas utiliser RefreshToken parce que je ne » sais comment rappeler la fonction après reciving une erreur d'expiration du jeton d'accès Pour Actualisez Token je dois faire: A) appeler SUM1: envoyer des variables et d'accès Token B) à l'intérieur FUNCTION1 : Je reçois l'erreur pour Acces Token expiration C) à l'intérieur FUNCTION1: J'envoie le rafraîchissement Token D) à l'intérieur de FUNCTION1: Je reçois le nouveau Token d'accès E) à l'intérieur de FUNCTION1: Je rappelle la fonction SUM1 de l'API REST pour le nouvel accès Token Toutes ces étapes doivent être effectuées dans FUNCTION1. Mais je ne sais pas comment. Peut-être utiliser RJx sur angular2, "retry/retrywhen" ... mais je n'ai lu qu'à leur sujet – Eventful