Bonjour,

Voila je developpe actuelement une SPA avec VueJs et Laravel. J´utilise passport pour l´authentification de l´API. Je cherche a integrer le projet opensource NODE-RED dans mon application (dans la même page).

Mon probleme est d´avoir une authentification pour la globalite de l´application. Quelqu´un m'a conseillé d´utiliser un reverse-proxy mais je ne vois pas comment tout cela pourrait fonctionner.

Quelqu´un pourrait il m´aider s´ils vous plaît?

merci.

3 réponses


Je comprend pas ton problème, qu'est ce qui te bloque dans l'authentification ? Je vais essayer d'emuler, pardon si ce n'est pas le souci initial
Tu as finalement 2 authentification:
1/ ton app laravel
2/ ton app node-red
Authentification :
User --- send crendential (login/password) --> laravel vérifie, authentifie ---> laravel envoie une requête d'authentification à ton app node-red (accessible que en local ou accès restreint !) --> laravel retourne la réponse à l'utilisateur
Action sur node-red
C'est là que le "proxy" interviens, l'utilisateur ne requête pas directement node-red mais laravel qui lui même requête node-red.

Cela offre un seul point d'entré (laravel) à toute ton app, ce qui se passe derrière n'est pas visible pour l'utilisateur :)

Half
Auteur

Actuelement node-red n´a pas d´authentification.
Ci je comprend bien tu utiliserais laravel comme un proxy pour aiguiler les requetes?

Que fais tu des requetes ajax entre le front et le backend de node red, ces derniere doivent etre modifiés a la voler pour y integre l´authentification dans le header ?

non non. si ton front veut une information (ou requêter au sens large) node-red, cela doit se passer tel que :
Request cycle où une flèche représente une requête : front --> laravel --> node-red
Request Cycle de la réponse front <--- laravel <--- node-red

Ainsi tu peux filtrer l'authentification avant d'intéroger node-red. Cette façon de faire est très utilisé sur les architectures Solr ou ElasticSearch.
Quelques parts, c'est aussi ce que tu fais déjà sans le savoir avec ton MySQL. l'utilisateur passe toujours par php pour intéroger ta DB.